我将repo推送到heroku master后,我收到此错误([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 :(得分: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
答案 1 :(得分: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
目录
答案 2 :(得分:0)
尝试使用os.path加入路径的元素。顺便说一下,您是否尝试将ProcFile更改为从工作中读取? python hellodjango/manage.py
稍后编辑:
尝试运行这三个命令以使heroku master:
pip install -r ./requirements.txt
foreman start
heroku create mempy-demo --stac=cedar
git push heroku master
现在测试一个简单的'Hello World':
$ curl mempy-demo.herokuapp.com
答案 3 :(得分:0)
您可以执行以下操作来更改环境变量(例如,如果出现错误,请将其添加到wsgi.py文件中):
os.environ["DJANGO_SETTINGS_MODULE"] = "myblog.settings"
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "myblog.settings")