2012-04-17 60 views
5

我得到這個錯誤([Errno 2]沒有這樣的文件或目錄)後,我把推銷回到heroku主。這是我的日誌。Django部署使用Heroku - [Errno 2]沒有這樣的文件或目錄

2012-04-17T18:24:53+00:00 app[web.1]: python: can't open file '/test/project/manage.py': [Errno 2]  No such file or directory 

2012-04-17T18:24:54+00:00 heroku[web.1]: Process exited with status 2 

2012-04-17T18:24:54+00:00 heroku[web.1]: State changed from starting to crashed 

2012-04-17T18:24:54+00:00 heroku[web.1]: State changed from crashed to created 

2012-04-17T18:24:54+00:00 heroku[web.1]: State changed from created to starting 

2012-04-17T18:24:57+00:00 heroku[web.1]: Starting process with command python /test/project/manage.py runserver 0.0.0.0:4473 --noreload 2012-04-17T18:24:57+00:00 app[web.1]: python: can't open file '/test/project/manage.py': [Errno 2] No such file or directory 

我Procfile如下所示:

web: python /test/project/manage.py runserver 0.0.0.0:$PORT --noreload 

我不知道爲什麼它不能打開該文件。當我使用我的開發服務器時,它會打開。有任何想法嗎?謝謝閱讀。

+0

然後你可以做到這一點你推動你當地回購的主分支? – ryudice 2012-04-17 23:56:26

+0

我這麼認爲。如果我做git分支,我看到的唯一的東西是* master – Zach 2012-04-18 00:01:36

回答

11

在Procfile您當前的設置引用了絕對路徑 '/test/project/manage.py' Heroku上不存在。 '/ test /是你正在運行的實例的根,是不正確的。你應該首先改變這是相對路徑,這很可能是這樣的:

web: python project/manage.py runserver 0.0.0.0:$PORT --noreload 

如果這不起作用,你可以通過運行探索項目的位置:

heroku run bash 

這應該放置你在'/ app'中從這裏可以看到開始項目的路徑是什麼。

由於您的初始推送可能未能啓動該流程,因此您可能需要擴展Web流程。

heroku scale web=1 
+0

這對我來說也適用於Heroku上的web.py應用程序 – JoshOiknine 2012-10-28 19:04:40

0

您可以將一個ls附加到heroku以查找文件系統的實際結構。

> heroku run ls/
Running ls/attached to terminal... up, run.1 
app dev home lib64  mnt sbin usr 
bin etc lib lost+found proc tmp var 

這可能是他們換一個app目錄中您的應用程序的情況下

+0

對我來說也是一樣。 – Zach 2012-04-18 00:11:06

+0

因此..你可能想要'web:python /app/test/project/manage.py runserver 0.0.0.0:$PORT --noreload'而不是 – Doboy 2012-04-18 01:33:25

0

嘗試使用os.path加入路徑的元素,順便說一句你有嘗試改變ProcFile從工讀? python hellodjango/manage.py

編輯後:

嘗試才能運行此三個命令,使Heroku的主人:

  • pip install -r ./requirements.txt

  • foreman start

  • heroku create mempy-demo --stac=cedar

  • 混帳推Heroku的主

現在測試一個簡單的 'Hello World':

$ curl mempy-demo.herokuapp.com 
+0

是的我試過了。 – Zach 2012-04-18 00:24:08

+0

我更新了我的答案,現在必須通過放入heroku主人來工作。 – 2012-04-18 00:46:31

0

你可以做這樣的事情來改變環境變量(例如,在您的wsgi.py文件,其中的錯誤來源於添加它,如果這是):

os.environ["DJANGO_SETTINGS_MODULE"] = "myblog.settings"                 
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "myblog.settings") 
相關問題