Первый раз, используя Heroku здесь. Я хочу разместить приложение Flask для python. Вид начинается с того, как все работает. Я хотел бы, чтобы проверить мое приложение локально с помощью команды heroku local
, но я получаю эту ошибку:Как проверить приложение python Heroku локально? ImportError: Нет модуля с именем wsgi
ImportError: No module named wsgi
Вот мои файлы:
PROCFILE:
web: gunicorn choposcope.wsgi --log-file -
myapp.wsgi :
from choposcope import app as application
Ошибка трассировки стека:
[2016-12-01 18:36:21 +0100] [9916] [INFO] Starting gunicorn 19.6.0
6:36:21 PM web.1 | [2016-12-01 18:36:21 +0100] [9916] [INFO] Listening at: http://0.0.0.0:5000 (9916)
6:36:21 PM web.1 | [2016-12-01 18:36:21 +0100] [9916] [INFO] Using worker: sync
6:36:21 PM web.1 | [2016-12-01 18:36:21 +0100] [9919] [INFO] Booting worker with pid: 9919
6:36:34 PM web.1 | [2016-12-01 18:36:34 +0100] [9919] [ERROR] Exception in worker process
6:36:34 PM web.1 | Traceback (most recent call last):
6:36:34 PM web.1 | File "/Users/Yann/Documents/dev/choposcope/env/lib/python2.7/site-packages/gunicorn/arbiter.py", line 557, in spawn_worker
6:36:34 PM web.1 | worker.init_process()
6:36:34 PM web.1 | File "/Users/Yann/Documents/dev/choposcope/env/lib/python2.7/site-packages/gunicorn/workers/base.py", line 126, in init_process
6:36:34 PM web.1 | self.load_wsgi()
6:36:34 PM web.1 | File "/Users/Yann/Documents/dev/choposcope/env/lib/python2.7/site-packages/gunicorn/workers/base.py", line 136, in load_wsgi
6:36:34 PM web.1 | self.wsgi = self.app.wsgi()
6:36:34 PM web.1 | File "/Users/Yann/Documents/dev/choposcope/env/lib/python2.7/site-packages/gunicorn/app/base.py", line 67, in wsgi
6:36:34 PM web.1 | self.callable = self.load()
6:36:34 PM web.1 | File "/Users/Yann/Documents/dev/choposcope/env/lib/python2.7/site-packages/gunicorn/app/wsgiapp.py", line 65, in load
6:36:34 PM web.1 | return self.load_wsgiapp()
6:36:34 PM web.1 | File "/Users/Yann/Documents/dev/choposcope/env/lib/python2.7/site-packages/gunicorn/app/wsgiapp.py", line 52, in load_wsgiapp
6:36:34 PM web.1 | return util.import_app(self.app_uri)
6:36:34 PM web.1 | File "/Users/Yann/Documents/dev/choposcope/env/lib/python2.7/site-packages/gunicorn/util.py", line 357, in import_app
6:36:34 PM web.1 | __import__(module)
6:36:34 PM web.1 | ImportError: No module named wsgi
6:36:34 PM web.1 | [2016-12-01 18:36:34 +0100] [9919] [INFO] Worker exiting (pid: 9919)
6:36:34 PM web.1 | [2016-12-01 18:36:34 +0100] [9916] [INFO] Shutting down: Master
6:36:34 PM web.1 | [2016-12-01 18:36:34 +0100] [9916] [INFO] Reason: Worker failed to boot.
[DONE] Killing all processes with signal null
6:36:34 PM web.1 Exited with exit code 3
Кроме того, я не знаю, должен ли модуль wsgi быть установлен по умолчанию с помощью фляжки. Когда я пытаюсь запустить pip install mod_wsgi
в моей виртуальной среде, я получаю эту ошибку:
pip install mod_wsgi
Collecting mod_wsgi
Using cached mod_wsgi-4.5.9.tar.gz
Complete output from command python setup.py egg_info:
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/private/var/folders/_1/bhy3l2kj5l36_859j956y87m0000gn/T/pip-build-h3zlPa/mod-wsgi/setup.py", line 284, in <module>
APR_INCLUDES = get_apr_includes().split()
File "/private/var/folders/_1/bhy3l2kj5l36_859j956y87m0000gn/T/pip-build-h3zlPa/mod-wsgi/setup.py", line 245, in get_apr_includes
stdout=subprocess.PIPE, stderr=subprocess.PIPE)
File "/usr/local/Cellar/python/2.7.11/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py", line 710, in __init__
errread, errwrite)
File "/usr/local/Cellar/python/2.7.11/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py", line 1335, in _execute_child
raise child_exception
OSError: [Errno 2] No such file or directory
----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in /private/var/folders/_1/bhy3l2kj5l36_859j956y87m0000gn/T/pip-build-h3zlPa/mod-wsgi/
Как вы установили герою? – daphtdazz
Не уверен, что заставляет вас думать, что вам нужен Apache; Heroku не использует его вообще, и это, конечно же, не требуется в разработке. Но вы не дали * почти * достаточно информации для нас, чтобы ответить на вопрос. Как выглядит ваша структура проекта? Вы в виртуальном мире? Какие библиотеки вы установили? Что находится в вашем procfile? И, что самое важное, что говорит * полная * ошибка трассировки? –
Я добавил детали, которые вы просили. Все находится в одной папке. – ypicard