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.

Вернуться на верх