Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ModuleNotFound错误Django和Heroku部署_Django_Heroku - Fatal编程技术网

ModuleNotFound错误Django和Heroku部署

ModuleNotFound错误Django和Heroku部署,django,heroku,Django,Heroku,我对Django和整个编程都是新手,我正在尝试将用Django开发的个人网站部署到heroku 我觉得我已经走到了最后一步,但有一个错误一直困扰着我,我无法靠自己或用文档来解决它 我的项目文件夹如下所示: 我的文件: 我的wsgi文件: 在heroku日志中,我得到以下信息: 2020-01-04T15:45:47.211072+00:00 app[web.1]: ModuleNotFoundError: No module named 'blog' 有许多蓝线,但我认为这是一个有问题的

我对Django和整个编程都是新手,我正在尝试将用Django开发的个人网站部署到heroku

我觉得我已经走到了最后一步,但有一个错误一直困扰着我,我无法靠自己或用文档来解决它

我的项目文件夹如下所示:

我的文件:

我的wsgi文件:

在heroku日志中,我得到以下信息:

2020-01-04T15:45:47.211072+00:00 app[web.1]: ModuleNotFoundError: No module named 'blog'
有许多蓝线,但我认为这是一个有问题的(即无法从中找到设置文件)

如果不清楚,我还能提供什么

谢谢你的帮助

我欢迎任何问题

更新

因此,我将使用的数据库从SQLite3更新为PostgreSQL,但仍然出现服务器错误500

这是我的manage.py,我在其中放置了PostgreSQL:

当我执行
manage.py runserver
时,应用程序会运行,但当heroku部署它时,它不会运行

heroku日志如下所示:


总结调查启动问题的过程。有两个问题:

1。本地开发和heroku上的生产项目布局不同,而代码库是为最高级别的mysite设置的,作为homepath,除了wsgi.py文件,这会导致花费额外的时间进行故障排除

.
├── Procfile <- web: gunicorn mysite.mysite.wsgi
├── mysite
│   ├── __init__.py
│   ├── blog
│   ├── db.sqlite3
│   ├── manage.py <- python manage.py runserver
│   ├── mysite
│   ├── static
│   ├── staticfiles
│   └── templates
├── requirements.txt
└── venv
--pythonpath:将目录添加到Python路径

web: gunicorn --pythonpath mysite mysite.wsgi
2.迁移。没有任何迁移应用操作

解决方案

将发布阶段添加到Procfile,该文件将在每次部署应用程序时应用迁移:

release: cd mysite && python manage.py migrate

解决这两个问题后,应用程序启动并运行。

嘿,伊万。首先,尝试修改您的Procfile:replace
web:gunicorn mysite.mysite.wsgi
web:gunicorn mysite.wsgi
哦,不。。。我没有注意到应用程序在mysite中。如果您将mysite根文件夹内容移动到icc blog中,那么一切都会正常工作。您是否像
python manage.py runserver
那样运行开发web服务器?如果是这样,则运行目录与gunicorn不同。最方便的方法是从同一文件夹运行两个Web服务器。但是gunicorn的--chdir参数可以帮助您解决这个问题。请尝试按如下方式修改程序文件:
web:gunicorn--pythonpath mysite mysite.wsgi
最后它必须工作。是的,只需复制粘贴这一行,并保留一个空白。您能帮助研究类似的问题吗?这件事我被耽搁了好几天,没有任何进展。
release: cd mysite && python manage.py migrate