Django Numpy ImportError с Apache, но не на runserver

Я перепробовал все другие темы и предложенные ими решения, но пока безуспешно.

У меня есть приложение Django с virtualenv и Apache 2.4 и mod_wsgi, которое я разработал на другом сервере. Сейчас я переношу (перестраиваю с нуля) все на другой сервер.

В то время как все остальное работает, когда я попытался установить pandas, приложение, обслуживаемое через Apache, выдает мне ImportError для Numpy.

Original error was: /optilab/env/lib64/python3.6/site-packages/numpy/core/_multiarray_umath.cpython-36m-x86_64-linux-gnu.so: 
failed to map segment from shared object

Дело в том, что этого не происходит при использовании runserver с manage.py . Все одинаково: версия Python (3.6.8), исполняемый файл Python (/optilab/env/bin/python), кроме порядка путей Python.

Для тестового сервера это список Python Path:

 ['/optilab',
 '/optilab/env/lib64/python3.6/site-packages',
 '/usr/lib64/python36.zip',
 '/usr/lib64/python3.6',
 '/usr/lib64/python3.6/lib-dynload',
 '/optilab/env/lib64/python3.6/site-packages',
 '/optilab/env/lib/python3.6/site-packages',
 '/home/appuser/.local/lib/python3.6/site-packages',
 '/usr/local/lib64/python3.6/site-packages',
 '/usr/local/lib/python3.6/site-packages',
 '/usr/lib64/python3.6/site-packages',
 '/usr/lib/python3.6/site-packages',
 '/env/lib64/python3.6/site-packages']

Но для приложения, обслуживаемого через Apache, Python Path имеет следующий вид:

 ['/optilab',
 '/optilab/core',
 '/usr/lib64/python36.zip',
 '/usr/lib64/python3.6',
 '/usr/lib64/python3.6/lib-dynload',
 '/optilab/env/lib64/python3.6/site-packages',
 '/optilab/env/lib/python3.6/site-packages',
 '/usr/local/lib64/python3.6/site-packages',
 '/usr/local/lib/python3.6/site-packages',
 '/usr/lib64/python3.6/site-packages',
 '/usr/lib/python3.6/site-packages']

Я подозреваю, что виновником этой проблемы является порядок списка, но, похоже, я не могу его изменить.

Структура моего файла следующая:

/optilab
     /core <-- startproject directory
     /env  <-- virtualenv files
     /static
     /media
     ... other apps

Вот первая часть конфигурации моего apache (BTW, я пытался использовать python-path в WSGIDaemonProcess, но это не помогло):


    WSGIPythonPath /optilab/env/lib64/python3.6/site-packages:/optilab/env/lib/python3.6/site-packages:/optilab:/optilab/core

    <VirtualHost *:80>

        ServerName optilab
        WSGIDaemonProcess optilab python-home=/optilab/env
        WSGIProcessGroup optilab
        WSGIApplicationGroup %{GLOBAL}
        WSGIScriptAlias / /optilab/core/wsgi.py

        <Directory /optilab>
            Require all granted
        </Directory>

        <Directory /optilab/core>
            <Files wsgi.py>
                    Require all granted
            </Files>
        </Directory>

    ....

Я перепробовал все, но ничего не помогло.

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