8

将 repo 推送到 heroku master 后,我收到此错误([Errno 2] No such file or directory)。这是我的日志。

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

我不知道为什么它无法打开文件。当我使用我的开发服务器时,它可以正常打开。有任何想法吗?谢谢阅读。

4

4 回答 4

11

您在 Procfile 中的当前设置引用了 Heroku 上不存在的绝对路径“/test/project/manage.py”。'/test/ 是您正在运行的实例的根目录并且不正确。您应该首先将其更改为相对路径,这可能类似于:

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

如果这不起作用,您可以通过运行来探索项目的位置:

heroku run bash

这应该将您置于“/app”中,从这里您可以看到启动项目的路径是什么。

由于您的初始推送可能无法启动该流程,您可能需要扩展 Web 流程。然后你可以这样做:

heroku scale web=1
于 2012-04-18T16:24:43.923 回答
1

您可以附加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目录中

于 2012-04-18T00:05:34.740 回答
0

您可以执行类似的操作来更改环境变量(例如,如果这是错误的来源,请将其添加到您的 wsgi.py 文件中):

os.environ["DJANGO_SETTINGS_MODULE"] = "myblog.settings"                                                                
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "myblog.settings")
于 2013-08-25T00:56:49.757 回答
0

尝试使用os.path加入路径的元素。顺便说一句,您是否尝试将 ProcFile 更改为从工作人员读取?python hellodjango/manage.py

稍后编辑:

尝试运行这三个命令以使 heroku 成为大师:

  • pip install -r ./requirements.txt

  • foreman start

  • heroku create mempy-demo --stac=cedar

  • git push heroku 大师

现在测试一个简单的“Hello World”:

$ curl mempy-demo.herokuapp.com
于 2012-04-18T00:10:52.683 回答