Hi
Just a heads up. I hit this issue twice on separate instances of frappe/erpnext dev virtualbox
During update process, update was halted with a compilation error for the python-ldap module:
Command "/home/frappe/frappe-bench/env/bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-iP8He3/python-ldap/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-iEKLhr-record/install-record.txt --single-version-externally-managed --compile --install-headers /home/frappe/frappe-bench/env/include/site/python2.7/python-ldap" failed with error code 1 in /tmp/pip-build-iP8He3/python-ldap/
Traceback (most recent call last):
File "/usr/local/bin/bench", line 9, in <module>
load_entry_point('bench', 'console_scripts', 'bench')()
File "/home/frappe/bench-repo/bench/cli.py", line 40, in cli
bench_command()
File "/usr/local/lib/python2.7/dist-packages/click/core.py", line 716, in __call__
return self.main(*args, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/click/core.py", line 696, in main
rv = self.invoke(ctx)
File "/usr/local/lib/python2.7/dist-packages/click/core.py", line 1060, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/usr/local/lib/python2.7/dist-packages/click/core.py", line 889, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/usr/local/lib/python2.7/dist-packages/click/core.py", line 534, in invoke
return callback(*args, **kwargs)
File "/home/frappe/bench-repo/bench/commands/update.py", line 60, in update
_update(pull, patch, build, bench, auto, restart_supervisor, requirements, no_backup, upgrade, force=force)
File "/home/frappe/bench-repo/bench/commands/update.py", line 79, in _update
update_requirements(bench_path=bench_path)
File "/home/frappe/bench-repo/bench/utils.py", line 375, in update_requirements
install_requirements(pip, req_file)
File "/home/frappe/bench-repo/bench/utils.py", line 379, in install_requirements
exec_cmd("{pip} install -q -r {req_file}".format(pip=pip, req_file=req_file))
File "/home/frappe/bench-repo/bench/utils.py", line 127, in exec_cmd
raise CommandFailedError(cmd)
bench.utils.CommandFailedError: ./env/bin/pip install -q -r ./apps/frappe/requirements.txt
Just documenting this here in case any one else has this issue.
If you are on ubuntu(as the virtualbox images are) the following will fix the issue:
sudo apt install -y libsasl2-dev python-dev libldap2-dev libssl-dev
This is due to missing headers for the ldap library