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.py
和 Procfile
运行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.py
和ls
的事实)告诉您,您还没有成功将您的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.py
aswell 中设置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