django procfile找不到settings.py

时间:2012-09-05 16:40:33

标签: python django heroku virtualenv foreman

我正在使用heroku和django / vertualenv ...我使用了这个boostrap文件:https://github.com/mtigas/heroku-django-demo-app/blob/master/tldr.markdown,命名为我的应用contest2,但是当我尝试使用foreman start本地运行工头时我得到:

raise ImportError("Could not import settings '%s' (Is it on sys.path?): %s" % (self.SETTINGS_MODULE, e))
11:10:06 web.1     | ImportError: Could not import settings 'src/contest2/contest2/settings.py' (Is it on sys.path?): Import by filename is not supported.

从proc文件的目录开始,这条路径:src/contest2/contest2/settings.py是正确的。

我的procfile如下所示:

web: gunicorn_django -b 0.0.0.0:$PORT -w 9 -k gevent --max-requests 250 --preload src/$PYTHON_APP_NAME/$PYTHON_APP_NAME/settings.py > Procfile 

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

您的src/contest2/contest2/settings.py已投放到__import__功能。

您可以尝试模拟错误:

>>> __import__('path/module.py')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: Import by filename is not supported.
>>>

您可能希望将其更改为具有python模块名称而不是路径。

更简单的方法是确保src/$PYTHON_APP_NAME/$PYTHON_APP_NAME/在您的路径上,并使用settings作为模块名称。

您可能需要查看the source of the gunicorn_djangocommand以了解其工作原理: