【问题标题】:Heroku /app/bin directory is missingHeroku /app/bin 目录丢失
【发布时间】:2012-10-23 22:52:35
【问题描述】:

对我的 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,所以我不确定这是从哪里来的

【问题讨论】:

    标签: python django heroku


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-04-07
      • 2017-10-17
      • 1970-01-01
      • 2016-12-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多