Операционная система - Ubuntu Server 14.04 на Azure VMapache2 mod_wsgi сбой при импорте pyodbc
Пробовал с разными версиями Python (3.4.3, 3.6.0), Apache и mod_wsgi.
Установленный драйвер родного ODBC MS, используя инструкции отсюда https://gist.github.com/joecampo/6f777a659b8132b9d6fe1c3589df394c, в то время как pyodbc был установлен с использованием pip.
Для отладки wsgi_module я поставил приложение Джанго для работы в интегрированном режиме и:
gdb /usr/local/apache2/bin/httpd
run -X
Когда я получить доступ к любой функции, которая импортирует pyodbc, то WSGI выдает следующее сообщение об ошибке:
Program received signal SIGSEGV, Segmentation fault.
import_types() at src/pyodbcmodule.cpp:223
223 src/pyodbcmodule.cpp: No such file or directory.
Импорт модуль работает нормально, когда я запустить приложение Джанго из командной строки:
python3 manage.py runserver
Есть ли обходной путь?
При запуске локально вы можете зависеть от '' LD_LIBRARY_PATH'', чтобы установить общую библиотеку. Эта переменная среды не будет установлена для mod_wsgi, и вы не можете легко установить ее так, чтобы она использовалась. Что такое '' LD_LIBRARY_PATH'' в вашей локальной среде? –
Я попытался 'echo $ LD_LIBRARY_PATH' или запустить' env'. Никто ничего не возвращал. Если бы я знал, что библиотека mod_wsgi не может найти, я могу создать мягкую ссылку в/usr/lib. Есть ли способ понять это? – Vahagn
Если у вас нет '' LD_LIBRARY_PATH'', это вряд ли будет причиной. Вы устанавливаете '' WSGIApplicationGroup% {GLOBAL} ''? Модуль, который вы используете, может просто не работать в суб-интерпретаторах Python и сбой. Эта директива вынуждает использовать основной интерпретатор, что больше похоже на то, что видят модули при использовании командной строки Python. Также рекомендуем использовать режим демонов mod_wsgi, если он еще не используется. –