[v7.1-beta] Error on last update

Hello,

When running bench update today I got this error on the login page:

Traceback (most recent call last):
File “/home/frappe/frappe-bench/apps/frappe/frappe/website/render.py”, line 32, in render
data = render_page_by_language(path)
File “/home/frappe/frappe-bench/apps/frappe/frappe/website/render.py”, line 101, in render_page_by_language
return render_page(path)
File “/home/frappe/frappe-bench/apps/frappe/frappe/website/render.py”, line 117, in render_page
return build(path)
File “/home/frappe/frappe-bench/apps/frappe/frappe/website/render.py”, line 124, in build
return build_page(path)
File “/home/frappe/frappe-bench/apps/frappe/frappe/website/render.py”, line 137, in build_page
context = get_context(path)
File “/home/frappe/frappe-bench/apps/frappe/frappe/website/context.py”, line 19, in get_context
context = build_context(context)
File “/home/frappe/frappe-bench/apps/frappe/frappe/website/context.py”, line 65, in build_context
module = frappe.get_module(context.controller)
File “/home/frappe/frappe-bench/apps/frappe/frappe/init.py”, line 646, in get_module
return importlib.import_module(modulename)
File “/usr/lib/python2.7/importlib/init.py”, line 37, in import_module
import(name)
File “/home/frappe/frappe-bench/apps/frappe/frappe/www/login.py”, line 11, in
from frappe.integrations.ldap_auth import get_ldap_settings
File “/home/frappe/frappe-bench/apps/frappe/frappe/integrations/ldap_auth.py”, line 2, in
import ldap, json
ImportError: No module named ldap

On bench update it shows this error:

Requirement already up-to-date: pip in ./env/lib/python2.7/site-packages
Command “/home/frappe/frappe-bench/env/bin/python -u -c “import setuptools, tokenize;file=‘/tmp/pip-build-JuQw54/python-ldap/setup.py’;exec(compile(getattr(tokenize, ‘open’, open)(file).read().replace(‘\r\n’, ‘\n’), file, ‘exec’))” install --record /tmp/pip-OgH4X7-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-JuQw54/python-ldap/
Traceback (most recent call last):
File “/usr/local/bin/bench”, line 11, in
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

any ideas?

If you’re on Ubuntu run:

sudo apt-get install libffi-dev libssl-dev
If you’re on CentOS run:

sudo yum install libffi-devel openssl-devel
If you’re on macOS run:

brew install openssl
And try updating again

Thank for helping!

I’m on Ubuntu oficial VM and apparently the packages were already installed, 0 packages installed. The error persists.

On bench update you still getting that error?

Yes, same error.

Apt-get ran like everything was already installed and updated.

@applepipe from frappe-bench run ./env/bin/pip install python-ldap

Here is the output:

./env/bin/pip install python-ldap
Collecting python-ldap
Using cached python-ldap-2.4.27.tar.gz
Requirement already satisfied (use --upgrade to upgrade): setuptools in ./env/lib/python2.7/site-packages (from python-ldap)
Building wheels for collected packages: python-ldap
Running setup.py bdist_wheel for python-ldap … error
Complete output from command /home/frappe/frappe-bench/env/bin/python -u -c “import setuptools, tokenize;file=‘/tmp/pip-build-Z7RJSj/python-ldap/setup.py’;exec(compile(getattr(tokenize, ‘open’, open)(file).read().replace(‘\r\n’, ‘\n’), file, ‘exec’))” bdist_wheel -d /tmp/tmpl0ulBOpip-wheel- --python-tag cp27:
defines: HAVE_SASL HAVE_TLS HAVE_LIBLDAP_R
extra_compile_args:
extra_objects:
include_dirs: /usr/include /usr/include/sasl /usr/local/include /usr/local/include/sasl
library_dirs: /usr/lib /usr/lib64 /usr/local/lib /usr/local/lib64
libs: ldap_r
running bdist_wheel
running build
running build_py
file Lib/ldap.py (for module ldap) not found
file Lib/ldap/controls.py (for module ldap.controls) not found
file Lib/ldap/extop.py (for module ldap.extop) not found
file Lib/ldap/schema.py (for module ldap.schema) not found
creating build
creating build/lib.linux-i686-2.7
copying Lib/ldapurl.py → build/lib.linux-i686-2.7
copying Lib/ldif.py → build/lib.linux-i686-2.7
copying Lib/dsml.py → build/lib.linux-i686-2.7
creating build/lib.linux-i686-2.7/ldap
copying Lib/ldap/init.py → build/lib.linux-i686-2.7/ldap
copying Lib/ldap/async.py → build/lib.linux-i686-2.7/ldap
creating build/lib.linux-i686-2.7/ldap/controls
copying Lib/ldap/controls/init.py → build/lib.linux-i686-2.7/ldap/controls
copying Lib/ldap/controls/deref.py → build/lib.linux-i686-2.7/ldap/controls
copying Lib/ldap/controls/libldap.py → build/lib.linux-i686-2.7/ldap/controls
copying Lib/ldap/controls/openldap.py → build/lib.linux-i686-2.7/ldap/controls
copying Lib/ldap/controls/ppolicy.py → build/lib.linux-i686-2.7/ldap/controls
copying Lib/ldap/controls/psearch.py → build/lib.linux-i686-2.7/ldap/controls
copying Lib/ldap/controls/pwdpolicy.py → build/lib.linux-i686-2.7/ldap/controls
copying Lib/ldap/controls/readentry.py → build/lib.linux-i686-2.7/ldap/controls
copying Lib/ldap/controls/sessiontrack.py → build/lib.linux-i686-2.7/ldap/controls
copying Lib/ldap/controls/simple.py → build/lib.linux-i686-2.7/ldap/controls
copying Lib/ldap/controls/sss.py → build/lib.linux-i686-2.7/ldap/controls
copying Lib/ldap/cidict.py → build/lib.linux-i686-2.7/ldap
copying Lib/ldap/dn.py → build/lib.linux-i686-2.7/ldap
creating build/lib.linux-i686-2.7/ldap/extop
copying Lib/ldap/extop/init.py → build/lib.linux-i686-2.7/ldap/extop
copying Lib/ldap/extop/dds.py → build/lib.linux-i686-2.7/ldap/extop
copying Lib/ldap/filter.py → build/lib.linux-i686-2.7/ldap
copying Lib/ldap/functions.py → build/lib.linux-i686-2.7/ldap
copying Lib/ldap/ldapobject.py → build/lib.linux-i686-2.7/ldap
copying Lib/ldap/logger.py → build/lib.linux-i686-2.7/ldap
copying Lib/ldap/modlist.py → build/lib.linux-i686-2.7/ldap
copying Lib/ldap/resiter.py → build/lib.linux-i686-2.7/ldap
copying Lib/ldap/sasl.py → build/lib.linux-i686-2.7/ldap
creating build/lib.linux-i686-2.7/ldap/schema
copying Lib/ldap/schema/init.py → build/lib.linux-i686-2.7/ldap/schema
copying Lib/ldap/schema/models.py → build/lib.linux-i686-2.7/ldap/schema
copying Lib/ldap/schema/subentry.py → build/lib.linux-i686-2.7/ldap/schema
copying Lib/ldap/schema/tokenizer.py → build/lib.linux-i686-2.7/ldap/schema
copying Lib/ldap/syncrepl.py → build/lib.linux-i686-2.7/ldap
file Lib/ldap.py (for module ldap) not found
file Lib/ldap/controls.py (for module ldap.controls) not found
file Lib/ldap/extop.py (for module ldap.extop) not found
file Lib/ldap/schema.py (for module ldap.schema) not found
running egg_info
writing requirements to Lib/python_ldap.egg-info/requires.txt
writing Lib/python_ldap.egg-info/PKG-INFO
writing top-level names to Lib/python_ldap.egg-info/top_level.txt
writing dependency_links to Lib/python_ldap.egg-info/dependency_links.txt
warning: manifest_maker: standard file ‘-c’ not found

file Lib/ldap.py (for module ldap) not found
file Lib/ldap/controls.py (for module ldap.controls) not found
file Lib/ldap/extop.py (for module ldap.extop) not found
file Lib/ldap/schema.py (for module ldap.schema) not found
reading manifest file ‘Lib/python_ldap.egg-info/SOURCES.txt’
reading manifest template ‘MANIFEST.in’
warning: no files found matching ‘Makefile’
warning: no files found matching ‘Modules/LICENSE’
writing manifest file ‘Lib/python_ldap.egg-info/SOURCES.txt’
running build_ext
building ‘_ldap’ extension
creating build/temp.linux-i686-2.7
creating build/temp.linux-i686-2.7/Modules
i686-linux-gnu-gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -DHAVE_SASL -DHAVE_TLS -DHAVE_LIBLDAP_R -DHAVE_LIBLDAP_R -DLDAPMODULE_VERSION=2.4.27 -IModules -I/usr/include -I/usr/include/sasl -I/usr/local/include -I/usr/local/include/sasl -I/usr/include/python2.7 -c Modules/LDAPObject.c -o build/temp.linux-i686-2.7/Modules/LDAPObject.o
In file included from Modules/LDAPObject.c:9:0:
Modules/errors.h:8:18: fatal error: lber.h: No such file or directory
#include “lber.h”
^
compilation terminated.
error: command ‘i686-linux-gnu-gcc’ failed with exit status 1


Failed building wheel for python-ldap
Running setup.py clean for python-ldap
Failed to build python-ldap
Installing collected packages: python-ldap
Running setup.py install for python-ldap … error
Complete output from command /home/frappe/frappe-bench/env/bin/python -u -c “import setuptools, tokenize;file=‘/tmp/pip-build-Z7RJSj/python-ldap/setup.py’;exec(compile(getattr(tokenize, ‘open’, open)(file).read().replace(‘\r\n’, ‘\n’), file, ‘exec’))” install --record /tmp/pip-Z_5lai-record/install-record.txt --single-version-externally-managed --compile --install-headers /home/frappe/frappe-bench/env/include/site/python2.7/python-ldap:
defines: HAVE_SASL HAVE_TLS HAVE_LIBLDAP_R
extra_compile_args:
extra_objects:
include_dirs: /usr/include /usr/include/sasl /usr/local/include /usr/local/include/sasl
library_dirs: /usr/lib /usr/lib64 /usr/local/lib /usr/local/lib64
libs: ldap_r
running install
running build
running build_py
file Lib/ldap.py (for module ldap) not found
file Lib/ldap/controls.py (for module ldap.controls) not found
file Lib/ldap/extop.py (for module ldap.extop) not found
file Lib/ldap/schema.py (for module ldap.schema) not found
creating build
creating build/lib.linux-i686-2.7
copying Lib/ldapurl.py → build/lib.linux-i686-2.7
copying Lib/ldif.py → build/lib.linux-i686-2.7
copying Lib/dsml.py → build/lib.linux-i686-2.7
creating build/lib.linux-i686-2.7/ldap
copying Lib/ldap/init.py → build/lib.linux-i686-2.7/ldap
copying Lib/ldap/async.py → build/lib.linux-i686-2.7/ldap
creating build/lib.linux-i686-2.7/ldap/controls
copying Lib/ldap/controls/init.py → build/lib.linux-i686-2.7/ldap/controls
copying Lib/ldap/controls/deref.py → build/lib.linux-i686-2.7/ldap/controls
copying Lib/ldap/controls/libldap.py → build/lib.linux-i686-2.7/ldap/controls
copying Lib/ldap/controls/openldap.py → build/lib.linux-i686-2.7/ldap/controls
copying Lib/ldap/controls/ppolicy.py → build/lib.linux-i686-2.7/ldap/controls
copying Lib/ldap/controls/psearch.py → build/lib.linux-i686-2.7/ldap/controls
copying Lib/ldap/controls/pwdpolicy.py → build/lib.linux-i686-2.7/ldap/controls
copying Lib/ldap/controls/readentry.py → build/lib.linux-i686-2.7/ldap/controls
copying Lib/ldap/controls/sessiontrack.py → build/lib.linux-i686-2.7/ldap/controls
copying Lib/ldap/controls/simple.py → build/lib.linux-i686-2.7/ldap/controls
copying Lib/ldap/controls/sss.py → build/lib.linux-i686-2.7/ldap/controls
copying Lib/ldap/cidict.py → build/lib.linux-i686-2.7/ldap
copying Lib/ldap/dn.py → build/lib.linux-i686-2.7/ldap
creating build/lib.linux-i686-2.7/ldap/extop
copying Lib/ldap/extop/init.py → build/lib.linux-i686-2.7/ldap/extop
copying Lib/ldap/extop/dds.py → build/lib.linux-i686-2.7/ldap/extop
copying Lib/ldap/filter.py → build/lib.linux-i686-2.7/ldap
copying Lib/ldap/functions.py → build/lib.linux-i686-2.7/ldap
copying Lib/ldap/ldapobject.py → build/lib.linux-i686-2.7/ldap
copying Lib/ldap/logger.py → build/lib.linux-i686-2.7/ldap
copying Lib/ldap/modlist.py → build/lib.linux-i686-2.7/ldap
copying Lib/ldap/resiter.py → build/lib.linux-i686-2.7/ldap
copying Lib/ldap/sasl.py → build/lib.linux-i686-2.7/ldap
creating build/lib.linux-i686-2.7/ldap/schema
copying Lib/ldap/schema/init.py → build/lib.linux-i686-2.7/ldap/schema
copying Lib/ldap/schema/models.py → build/lib.linux-i686-2.7/ldap/schema
copying Lib/ldap/schema/subentry.py → build/lib.linux-i686-2.7/ldap/schema
copying Lib/ldap/schema/tokenizer.py → build/lib.linux-i686-2.7/ldap/schema
copying Lib/ldap/syncrepl.py → build/lib.linux-i686-2.7/ldap
file Lib/ldap.py (for module ldap) not found
file Lib/ldap/controls.py (for module ldap.controls) not found
file Lib/ldap/extop.py (for module ldap.extop) not found
file Lib/ldap/schema.py (for module ldap.schema) not found
running egg_info
writing requirements to Lib/python_ldap.egg-info/requires.txt
writing Lib/python_ldap.egg-info/PKG-INFO
writing top-level names to Lib/python_ldap.egg-info/top_level.txt
writing dependency_links to Lib/python_ldap.egg-info/dependency_links.txt
warning: manifest_maker: standard file ‘-c’ not found

file Lib/ldap.py (for module ldap) not found
file Lib/ldap/controls.py (for module ldap.controls) not found
file Lib/ldap/extop.py (for module ldap.extop) not found
file Lib/ldap/schema.py (for module ldap.schema) not found
reading manifest file 'Lib/python_ldap.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
warning: no files found matching 'Makefile'
warning: no files found matching 'Modules/LICENSE'
writing manifest file 'Lib/python_ldap.egg-info/SOURCES.txt'
running build_ext
building '_ldap' extension
creating build/temp.linux-i686-2.7
creating build/temp.linux-i686-2.7/Modules
i686-linux-gnu-gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -DHAVE_SASL -DHAVE_TLS -DHAVE_LIBLDAP_R -DHAVE_LIBLDAP_R -DLDAPMODULE_VERSION=2.4.27 -IModules -I/usr/include -I/usr/include/sasl -I/usr/local/include -I/usr/local/include/sasl -I/usr/include/python2.7 -c Modules/LDAPObject.c -o build/temp.linux-i686-2.7/Modules/LDAPObject.o
In file included from Modules/LDAPObject.c:9:0:
Modules/errors.h:8:18: fatal error: lber.h: No such file or directory
 #include "lber.h"
                  ^
compilation terminated.
error: command 'i686-linux-gnu-gcc' failed with exit status 1
----------------------------------------

Command “/home/frappe/frappe-bench/env/bin/python -u -c “import setuptools, tokenize;file=‘/tmp/pip-build-Z7RJSj/python-ldap/setup.py’;exec(compile(getattr(tokenize, ‘open’, open)(file).read().replace(‘\r\n’, ‘\n’), file, ‘exec’))” install --record /tmp/pip-Z_5lai-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-Z7RJSj/python-ldap/

I’ve tried already to run sudo apt-get install python-dev, apparently everything is installed correctly.

@applepipe
Try to install:

sudo apt-get install libsasl2-dev python-dev libldap2-dev libssl-dev

1 Like

Thank you!

libsasl2-dev and libldap2-dev was missing.

Solved with:

sudo apt-get install libsasl2-dev python-dev libldap2-dev libssl-dev
./env/bin/pip install python-ldap

But now I got a missing page on login.

Is there anything on console ? Can you share screenshot?

I have the exact same problem as another user in this topic Login page missing update - #2 by daniel

I guess the most stupid question but have you done the following:

sudo reboot

after reboot
bench --update

bench setup nginx sudo ln -s pwd/config/nginx.conf /etc/nginx/conf.d/frappe-bench.conf

we have identified and fixed the issue via [urgent][fix] 404 for login page by saurabh6790 · Pull Request #2033 · frappe/frappe · GitHub

Will release this soon.

Sorry for the inconvenience.