我正在Heroku上部署Django网站。我的项目称为 mysite-project ,该项目的根manage.py
和Procfile
运行git push heroku master
后,我可以访问heroku网站。
网站显示:
我假设我没有看到任何内容(导航栏,初始页面等),因为我没有运行迁移。
如果我这样做:
heroku run python manage.py migrate
我得到了错误:
python:无法打开文件'manage.py':[错误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中。
Procfile
web: gunicorn mysite-project.wsgi
答案 0 :(得分:0)
您访问该网站时看到的欢迎消息(以及您在服务器上找不到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
的底部。同样不要忘记在STATIC_ROOT='staticfiles'
中设置settings.py
。
答案 1 :(得分:0)
上面所附的屏幕截图是通用的欢迎消息页面,该页面会在创建新应用程序时以及部署任何代码之前尝试访问空应用程序的生成URL时显示。
您可以重试代码,这是在Heroku平台上部署Python应用程序的分步指南。 -Deploy the Python app。
答案 2 :(得分:0)
附带的屏幕截图表明您刚刚在heroku中创建了应用程序,但没有将本地存储库代码推送到heroku应用程序中。
git push heroku master
答案 3 :(得分:0)
首先使用 heroku logs --source app --tail
确保构建成功。
如果构建成功,请确保您的项目位于 git 存储库的根目录。
我遇到了同样的问题,因为我的 Django 项目不在 git repo 的根目录下。
我的文件层次结构首先是(假设项目原型的名称并且它有一个名为 app 的应用程序)
├──git_repo
├──Procfile
├──requirements.txt
├──新文件夹
├──prototype(文件夹)
├──app(文件夹)
├──.gitignore
├──manage.py
├──db.sqlite3
我将层次结构更改为以下内容并且有效
├──git_repo
├──Procfile
├──requirements.txt
├──prototype(文件夹)
├──app(文件夹)
├──.gitignore
├──manage.py
├──db.sqlite3
答案 4 :(得分:0)
正如@Reem_Abdel_Rahman 所指出的,您项目的 manage.py
文件可能不存在于您项目的 git 存储库的根目录中。
但是,如果您在项目的 manage.py
中提供 Procfile
文件的相对路径,您仍然可以解决此问题:
web: python project-name/manage.py runserver 0.0.0.0:$PORT
此外,请确保在末尾指定 0.0.0.0:$PORT
以允许您的 django 应用绑定到任何默认仅绑定到 localhost
的 IP。