0

我正在使用 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.

从procfile所在的目录来看,这个路径: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 

提前感谢您的帮助。

4

1 回答 1

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作模块名称。

您可能想查看命令的源代码gunicorn_django 以了解其工作原理:

于 2012-09-05T16:50:32.530 回答