【发布时间】:2016-12-01 14:15:05
【问题描述】:
第一次在这里使用 Heroku。我想托管一个 python Flask 应用程序。有点开始了解事情是如何运作的。
我想使用heroku local 命令在本地测试我的应用程序,但我收到此错误:
ImportError: 没有名为 wsgi 的模块
这是我的文件:
过程文件:
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/
【问题讨论】:
-
你是如何安装heroku的?
-
不确定是什么让您认为您需要 Apache; Heroku 根本不使用它,开发中当然也不需要它。但是您没有提供几乎足够的信息让我们回答这个问题。你的项目结构是什么样的?你在虚拟环境中吗?你安装了哪些库?你的 procfile 里有什么?而且,最重要的是,full 错误回溯说明了什么?
-
我添加了您要求的详细信息。一切都在同一个文件夹中。
-
我按照此链接的说明安装了heroku:devcenter.heroku.com/articles/…