1

对我的 django 应用程序提交了一个小的代码更改并部署到 heroku。该应用程序现在在每个响应上都会引发 H10(应用程序崩溃)错误。当我检查日志时,我看到..

[web.1]: Traceback (most recent call last):
[web.1]:   File "nightlife2/manage.py", line 2, in <module>
[web.1]:     from django.core.management import execute_manager
[web.1]: ImportError: No module named django.core.management
[web.1]: bash: bin/gunicorn_django: No such file or directory

..我知道这意味着 django 不在 pythonpath 上。我查看了 heroku 配置上的 PATH ,上面写着bin:/usr/local/bin:/usr/bin:/bin. 但是在执行 时heroku run bash,我注意到整个bin目录现在已经消失了。我在 heroku 上部署的其他应用程序仍然可以推送到那里并且仍然有bin目录(我相信较新的应用程序不再有 bin 目录,它现在在 .heroku/venv/bin 中。不是 100% 确定那里的详细信息)

有没有人遇到过这个?我可以将 PATH 更改为,.heroku/venv/bin但随后出现关于 sql 的错误,我不知道这是离根本问题更近还是更远。任何事情都将不胜感激,因为这是生产服务器并且目前正在使用软管。

编辑:更改路径时的错误是:django.core.exceptions.ImproperlyConfigured: Error loading either pysqlite2 or sqlite3 modules (tried in that order): No module named _sqlite3 . 该数据库是postgress,所以我不确定这是从哪里来的

4

1 回答 1

1

我解决了这个问题。这是一个组合。我将在这里记录下来,希望可以避免我刚刚经历的头痛。

我们的数据库刚刚更新到新的 Heroku Postgres 开发计划。(不确定这是否相关)。这是数据库更新后的第一次代码推送。

不久前,我记得听说过设置注入已被弃用。因为天真,我们什么也没做,也没有看到任何变化,所以从来没有跟进过。他们决定今天生效,并断开了与我们的 postgres 数据库的链接。我仍然不确定为什么该bin目录现在消失了,但似乎该应用程序现在正在使用新的.heroku/venv/bin. 为了解决所有这些问题,我不得不更改 settings.py 以使用数据库的新 postgres 声明。我在我的 OP 中是正确的,heroku config需要更新 PATH 变量以指向.heroku/venv/bin目录。然后我不得不更新 Procfile,因为它抱怨bin/gunicorn_django找不到。更新完所有内容后,推送代码即可解决问题

于 2012-10-23T23:59:57.510 回答