LibYAML fix
Grow heavily relies on fast YAML parsing. Grow uses PyYAML, which supports LibYAML C bindings. If the C bindings aren't used, Grow's performance is severely degraded.
This is important enough to warrant a warning, so if you received the following message by Grow, you are using the slower pure Python YAML implementation, and not the faster LibYAML version:
Warning: libyaml missing, using slower yaml parser.
pipenv run grow install
attempts to fix this for you automatically, but it
may not work reliably depending on your environment.
Install LibYAML (once per machine)
To fix this, you need to reinstall PyYAML with LibYAML support.
If you've never installed LibYAML before, install using the below commands. This only needs to be done once per machine.
# On Linux. sudo apt-get install libyaml-dev # On Mac. brew install libyaml
Reinstall PyYAML (once per Grow project)
Once LibYAML is installed, reinstall PyYAML locally from your project directory:
# On Linux. pipenv run pip3 install --global-option="--with-libyaml" --force pyyaml # On Mac. LDFLAGS="-L$(brew --prefix)/lib" \ CFLAGS="-I$(brew --prefix)/include" \ pipenv run pip3 install --global-option="--with-libyaml" --force pyyaml
Clean up
Now, pipenv run grow
commands should complete without the libyaml
warning.
Still having problems? Fast YAML parsing is critical enough to Grow's performance that it is likely worth fixing for your project and environment.
Report an issue on GitHub with any information related to your error so we can resolve it.