【问题标题】:heroku django import error no module named _collectionsheroku django 导入错误没有名为 _collections 的模块
【发布时间】:2012-12-13 19:45:08
【问题描述】:

值得注意的是,我使用custom buildpack 来启用使用node.js 进行coffeescript 编译。

在包含迁移的更改后,运行迁移时出现以下错误

Running `./manage.py migrate talent` attached to terminal... up, run.3366
Traceback (most recent call last):
  File "./manage.py", line 8, in <module>
    from django.core.management import execute_from_command_line
  File "/app/lib/python2.7/site-packages/django/core/management/__init__.py", line 1, in <module>
    import collections
  File "/usr/local/lib/python2.7/collections.py", line 8, in <module>
    from _collections import deque, defaultdict
ImportError: No module named _collections

heroku run bash shell 会话中浏览了一下之后,我发现打开 python repl 并运行 import collections 可能会触发相同的错误。

【问题讨论】:

    标签: python django heroku


    【解决方案1】:

    进一步分析表明,可以通过将/usr/local/lib/python2.7/:/usr/local/lib/python2.7/lib-dynload/ 添加到 $PYTHONPATH 来抑制错误。我首先尝试在 buildpack 的 bin/release 文件中执行此操作,但我还有一个 PYTHONPATH 配置变量,它显然会覆盖环境的 buildpack 设置(可能应该如此)。

    无论如何,修复 $PYTHONPATH 使一切都恢复正常,但这感觉很尴尬,就像其他事情出错的症状一样。希望比我了解更多 Heroku 知识的人能提供一些启示。

    【讨论】:

    • 我在使用 Anaconda 时开始遇到同样的问题。我将位于我的 conda env 中的 lib-dynload、site-packages、python2.7 和 lib 附加到我的 sys.path。
    猜你喜欢
    • 2017-03-13
    • 2012-03-16
    • 2018-02-13
    • 2012-10-26
    • 2011-08-28
    • 2013-11-26
    • 2017-09-09
    • 2017-06-04
    相关资源
    最近更新 更多