Django Heroku:python:无法打开文件'manage.py':[Errno 2]没有这样的文件或目录

Posted

技术标签:

【中文标题】Django Heroku:python:无法打开文件\'manage.py\':[Errno 2]没有这样的文件或目录【英文标题】:Django Heroku : python: can't open file 'manage.py': [Errno 2] No such file or directoryDjango Heroku:python:无法打开文件'manage.py':[Errno 2]没有这样的文件或目录 【发布时间】:2019-12-16 12:38:36 【问题描述】:

我正在 Heroku 上部署一个 Django 网站。我的项目名为 mysite-project,其根目录包含 manage.pyProcfile

运行git push heroku master后可以访问heroku网站。

网站显示:

我假设我没有看到任何东西(导航栏、初始页面等),因为我没有运行 migrate。

如果我这样做:

heroku run python manage.py migrate

我得到错误:

python: 无法打开文件 'manage.py': [Errno 2] 没有这样的文件或目录

这没有任何意义,因为我在正确的目录中。 事实上:

我可以运行 python manage.py runserver 并且 locahost 工作 git ls-files manage.py --输出--> manage.py

但是 如果我这样做:

heroku run bash
ls manage.py

我得到:ls: cannot access 'manage.py': No such file or directory

manage.py 似乎在我的本地,但不在我的 heroku 中。

过程文件

web: gunicorn mysite-project.wsgi

【问题讨论】:

你在哪里可以解决这个问题? @Magofoco 我不是,我用的是 DigitalOcean 而不是 Heroku。 【参考方案1】:

您在访问该站点时看到的欢迎(以及在服务器上找不到manage.pyls 的事实)告诉您,您还没有成功将您的django 项目推送到Heroku呢。尝试运行git push heroku master

可能是推送失败了,请咨询documentation。具体来说,运行

$ pip install gunicorn django-heroku
$ pip freeze > requirements.txt

...然后添加

import django_heroku
django_heroku.settings(locals())

...到settings.py 的底部。另外不要忘记在settings.pyaswell 中设置STATIC_ROOT='staticfiles'

【讨论】:

你从运行git push heroku master得到什么?推送成功了吗?【参考方案2】:

附加的屏幕截图表明您刚刚在 heroku 中创建了应用程序,但没有将本地存储库代码推送到 heroku 应用程序。

git push heroku master

【讨论】:

【参考方案3】:

首先使用heroku logs --source app --tail 确保构建成功。 如果构建成功,请确保您的项目位于 git repo 的根目录中。 我遇到了同样的问题,因为我的 Django 项目不在 git repo 的根目录下。 我的文件层次结构首先是(假设项目原型的名称并且它有一个名为 app 的应用程序) ├──git_repo ├──Procfile ├──requirements.txt ├──新文件夹 ├──原型(文件夹) ├──app(文件夹) ├──.gitignore ├──manage.py ├──db.sqlite3

我将层次结构更改为以下,并且它起作用了 ├──git_repo ├──Procfile ├──requirements.txt ├──原型(文件夹) ├──app(文件夹) ├──.gitignore ├──manage.py ├──db.sqlite3

【讨论】:

【参考方案4】:

正如@Reem_Abdel_Rahman 所指出的,您项目的manage.py 文件可能不存在于您项目的git 存储库的根目录中。

但是,如果您在项目的 Procfile 中提供 manage.py 文件的相对路径,您仍然可以解决此问题:

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

另外,请确保在末尾指定 0.0.0.0:$PORT 以允许您的 django 应用绑定到默认情况下仅绑定到 localhost 的任何 IP。

【讨论】:

以上是关于Django Heroku:python:无法打开文件'manage.py':[Errno 2]没有这样的文件或目录的主要内容,如果未能解决你的问题,请参考以下文章

python 无法打开文件'manage.py'-“heroku 运行 python manage.py 迁移命令输入”

Heroku/python 无法检测到 set buildpack

在 Heroku 上部署 React 和 Django

Django 登录 Heroku

django makemigrations 和 heroku 服务器上的迁移不创建表

Heroku 无法连接到我的 django 数据库