Ошибка при развертывании приложения Flask с помощью wsgi на apache2

У меня проблема с развертыванием приложения фляги на apache2 с помощью mod_wsgi. Журнал ошибок и файлы конфигурации следуют. Я всегда получаю внутреннюю ошибку сервера. Это очень похоже на Как решить ошибки импорта при попытке развернуть Flask с использованием WSGI на Apache2, но по какой-то причине предложенное там решение не сработало.

журнал ошибок apache

[Thu Aug 27 12:06:30.366817 2015] [:error] [pid 9330:tid 140623686452992] [remote 2.239.9.178:64904] mod_wsgi (pid=9330): Target WSGI script '/var/www/bitcones/bitcones.wsgi' cannot be loaded as Python module.
[Thu Aug 27 12:06:30.366867 2015] [:error] [pid 9330:tid 140623686452992] [remote 2.239.9.178:64904] mod_wsgi (pid=9330): Exception occurred processing WSGI script '/var/www/bitcones/bitcones.wsgi'.
[Thu Aug 27 12:06:30.366894 2015] [:error] [pid 9330:tid 140623686452992] [remote 2.239.9.178:64904] Traceback (most recent call last):
[Thu Aug 27 12:06:30.366913 2015] [:error] [pid 9330:tid 140623686452992] [remote 2.239.9.178:64904]   File "/var/www/bitcones/bitcones.wsgi", line 4, in <module>
[Thu Aug 27 12:06:30.366969 2015] [:error] [pid 9330:tid 140623686452992] [remote 2.239.9.178:64904]     from bitcones import bitcones as application
[Thu Aug 27 12:06:30.366981 2015] [:error] [pid 9330:tid 140623686452992] [remote 2.239.9.178:64904]   File "/var/www/bitcones/bitcones/bitcones.py", line 6, in <module>
[Thu Aug 27 12:06:30.367045 2015] [:error] [pid 9330:tid 140623686452992] [remote 2.239.9.178:64904]     from analysis import cone as _cone, flow
[Thu Aug 27 12:06:30.367056 2015] [:error] [pid 9330:tid 140623686452992] [remote 2.239.9.178:64904]   File "/var/www/bitcones/bitcones/analysis/cone.py", line 5, in <module>
[Thu Aug 27 12:06:30.367121 2015] [:error] [pid 9330:tid 140623686452992] [remote 2.239.9.178:64904]     from analysis.statistics import purity_statistics
[Thu Aug 27 12:06:30.367139 2015] [:error] [pid 9330:tid 140623686452992] [remote 2.239.9.178:64904] ImportError: No module named analysis.statistics

bitcones.wsgi

#!/usr/bin/python
import sys
sys.path.insert(0,"/var/www/bitcones")
from bitcones import bitcones as application

файл виртуального хоста apache

<VirtualHost *:80>
    ServerName <my-server-name>
    ServerAdmin <my-email>
    WSGIDaemonProcess bitcones user=<my-username> group=<my-username> threads=5
    WSGIScriptAlias / /var/www/bitcones/bitcones.wsgi

<Directory /var/www/bitcones>
    WSGIProcessGroup bitcones
    WSGIApplicationGroup %{GLOBAL}
    Order deny,allow
    Allow from all
</Directory>

часть моего дерева приложений (все находится в /var/www/bitcones/)

├── bitcones
│   ├── analysis
│   │   ├── <some_files>
│   │   └── statistics
│   │   │   ├── <some_files>
│   ├── bitcones.py
│   ├── static
│   │   ├── <some static content>
│   └── templates
│       └── <my_templates>.html
└── bitcones.wsgi

Этого должно быть достаточно, чтобы выяснить, почему у меня возникает эта ошибка импорта. Если требуется какой-либо другой файл / конфигурация, пожалуйста, спросите. Я схожу с ума

Спасибо!

РЕДАКТИРОВАТЬ: Я просто хочу добавить, что я следовал этому руководству: http://flask.pocoo.org/docs/0.10/deploying/mod_wsgi/

1 ответ

Вы устанавливаете версию Python, которую использует mod_wsgi при установке libapache2-mod-wsgi (python 2) или libapache2-mod-wsgi-py3 (python 3). Я предполагаю, что вы на Python 2 из того, что вы описываете, поскольку использование Python 3 - более осознанный выбор, чем 2. Однако я не думаю, что это ваша проблема. Я думаю, что это проблема импорта, как сказал Грэм.

Я рекомендую использовать from bitcones.analysis.statistics import purity_statistics для вашего заявления на импорт.

Другие вопросы по тегам