2012-04-17 61 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") 
相关问题