Django-сервер терпит неудачу из-за ошибки ModuleNotFoundError: Нет модуля с именем '_ldap' при запуске apache
При запуске в виртуальной среде python 3.9 с помощью python manage.py runserver
мой django-сервер работает нормально, но при запуске apache с той же виртуальной средой, настроенной на путь python, он терпит неудачу с ошибками ниже:
[Mon Mar 11 11:00:49.683439 2024] [wsgi:error] [pid 909852:tid 139790141196032] [remote 10.144.196.5:52892] from .ldapauth import *
[Mon Mar 11 11:00:49.683446 2024] [wsgi:error] [pid 909852:tid 139790141196032] [remote 10.144.196.5:52892] File "/srv/django/pxpro/pxpro_editor/ldapauth.py", line 4, in <module>
[Mon Mar 11 11:00:49.683495 2024] [wsgi:error] [pid 909852:tid 139790141196032] [remote 10.144.196.5:52892] import ldap
[Mon Mar 11 11:00:49.683501 2024] [wsgi:error] [pid 909852:tid 139790141196032] [remote 10.144.196.5:52892] File "/srv/django/pxpro-env/lib/python3.9/site-packages/ldap/__init__.py", line 34, in <module>
[Mon Mar 11 11:00:49.683504 2024] [wsgi:error] [pid 909852:tid 139790141196032] [remote 10.144.196.5:52892] import _ldap
[Mon Mar 11 11:00:49.683512 2024] [wsgi:error] [pid 909852:tid 139790141196032] [remote 10.144.196.5:52892] ModuleNotFoundError: No module named '_ldap'
Я использую django 4.2.10 с pyldap==3.0.0.post1 и python-ldap 3.4.4 в моей виртуальной среде python
мой apache.conf:
$ cat /etc/httpd/conf.d/pxpro.conf
<VirtualHost *:8031>
ServerAdmin <myserverAdmin>
ServerName <myServer>
# ServerAlias <server_fqdn>
ErrorLog /var/log/httpd/pxpro-error_log
CustomLog /var/log/httpd/pxpro-access_log combined
LogLevel debug
HostnameLookups Off
UseCanonicalName Off
ServerSignature Off
Alias /media/ /srv/django/pxpro/media/
Alias /static/ /srv/django/pxpro/static/
#RedirectMatch 301 "^/static/media/uploads/(.*)$" "/media/uploads/$1"
<IfModule wsgi_module>
WSGIDaemonProcess pxpro_wsgi user=django group=django home=/srv/django python-home=/srv/django/pxpro-env startup-timeout=15 python-path=/srv/django/pxpro-env/lib/python3.9/site-packages
WSGIProcessGroup pxpro_wsgi
WSGIApplicationGroup pxpro_wsgi
WSGIScriptAlias / /srv/django/pxpro/settings/wsgi.py process-group=pxpro_wsgi application-group=pxpro_wsgi
</IfModule>
...
Есть идеи, как это возможно?
Из PYPI страницы pyldap
Предупреждение
К сожалению, из-за ошибки pip 4961 обновление с предыдущих версий с помощью pip делает модуль ldap неимпортируемым.
Вместо обновления, пожалуйста, замените pyldap
на python-ldap
в два отдельных шага:
python -m pip uninstall pyldap
python -m pip install python-ldap
Если обновление уже произошло, вы можете исправить ситуацию, удалив и переустановив python-ldap
:
python -m pip uninstall python-ldap
python -m pip install python-ldap
Мы сожалеем о причиненных неудобствах. Если у вас есть лучшее решение, пожалуйста, присоединяйтесь к обсуждению на pyldap bug 148.
Так что в основном вам придется удалить pyldap
.