我正在使用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
提前感谢您的帮助。
答案 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_django
command以了解其工作原理: