Gunicorn + Django的+的Heroku。 Python路径问题

时间:2013-03-24 21:52:30

标签: python django heroku gunicorn pythonpath

我正在运行一个Django应用程序,我曾经用Gunicorn部署到Heroku,没有任何障碍。我的意思是我可以运行

foreman start

在我的localhost上,并能够了解该应用程序是否可以在生产环境中工作。我最近决定将所有项目的应用程序移动到名为“applications”的子文件夹中。这意味着在其他文件中编辑我的DJANGO_SETTINGS_MODULE环境变量。在这之后,我尝试了工头和gunicorn,直到我启动并运行本地服务器。此时我部署到生产中。不用说,有一个错误:

Running `gunicorn --workers=4 applications.rocketlistings.wsgi -b 0.0.0.0: -k gevent` attached to terminal... up, run.8052
Traceback (most recent call last):
  File "/app/.heroku/python/bin/gunicorn", line 9, in <module>
    load_entry_point('gunicorn==0.17.2', 'console_scripts', 'gunicorn')()
  File "/app/.heroku/python/lib/python2.7/site-packages/distribute-0.6.34-py2.7.egg/pkg_resources.py", line 343, in load_entry_point
    return get_distribution(dist).load_entry_point(group, name)
  File "/app/.heroku/python/lib/python2.7/site-packages/distribute-0.6.34-py2.7.egg/pkg_resources.py", line 2307, in load_entry_point
    return ep.load()
  File "/app/.heroku/python/lib/python2.7/site-packages/distribute-0.6.34-py2.7.egg/pkg_resources.py", line 2013, in load
    entry = __import__(self.module_name, globals(),globals(), ['__name__'])
ImportError: No module named app.wsgiapp

我不确定我做错了什么,而且考虑到heroku运行模糊的远程设置,调试情况非常困难。 Other threads讨论此错误表明这是一个路径问题。这听起来很合理,但考虑到我的应用程序文件夹中有一个 init .py文件,并且一切都在本地运行,我无法想到该路径可能出现的问题。

无论如何,这是我的生产路径/ pythonpath:

Running `echo $PATH` attached to terminal... up, run.2583
/app/.heroku/python/bin:/usr/local/bin:/usr/bin:/bin

Running `echo $PYTHONPATH` attached to terminal... up, run.8026
/app/

提前致谢!

1 个答案:

答案 0 :(得分:2)

有时,当Gunicorn在PYTHONPATH中找到另一个名为“app”的模块时会发生这种情况。将PYTHONPATH设置为假值可以解决问题:

$ heroku config:set PYTHONPATH=fakepath

https://github.com/heroku/heroku-buildpack-python/wiki/Troubleshooting#no-module-named-appwsgiapp