2012-09-05 58 views
0

我使用的Heroku和Django的/ vertualenv ......我用這個自舉文件:https://github.com/mtigas/heroku-django-demo-app/blob/master/tldr.markdown,命名爲我的應用程序contest2,但是當我嘗試使用foreman start工頭本地運行我得到:Django的procfile找不到settings.py

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 

感謝您的幫助提前。

回答

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弄清楚它是如何工作的:

+0

真棒,謝謝。我將它添加到我的Python路徑並使用contest2.settings.py – imns