Ошибка при развертывании приложения 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
для вашего заявления на импорт.