【发布时间】:2017-05-15 17:44:45
【问题描述】:
当我尝试将我的应用程序部署到 heroku 但应用程序在本地构建良好时,我收到了ImportError: No module named。这是 Heroku 的日志
Traceback (most recent call last):
File "mr_meeseeks.py", line 4, in <module>
import Helpers.Plugin_Handler as Plugin_Handler
File "/app/Helpers/Plugin_Handler.py", line 5, in <module>
from Utils.constants import Plugin_Type
ImportError: No module named 'Utils.constants'
据我所知,Utils/constants.py 存在。如果它是相关的,这是一个 SlackBot。其余代码可以在here找到。
【问题讨论】:
-
我很惊讶它没有在本地抛出错误,Utils 与 Helpers 不在同一个模块中。您能否在本地删除所有
__pycache__并重试?另外你怎么知道它没有在本地失败?您是否尝试过产品步骤,或者您是根据您的测试这么说的。说到你的测试没有签入:) -
@plumSemPy 遗憾的是,我还没有任何测试。我知道它不会在本地失败,因为我可以运行
python mr_meeseeks.py并且它不会像在 Heroku 上那样崩溃。 Slackbot 还将按预期响应消息。我的 Procfile 的内容是worker: python mr_meeseeks.py,所以就我所知,这两者应该是等价的。我删除了__pycache__文件,但它仍然没有在本地崩溃。你问的是这个吗? -
是的,
Plugin_Handler中的导入不应该起作用,因为 Utils 与Plugin_Handler不在同一个模块(目录)中,这让我觉得有些东西被缓存了。能否请您尝试删除所有.pyc文件?我正在尝试在本地重现您的产品错误 -
是的。删除 .pyc 文件并在本地重新运行。仍然工作正常。
-
见下面@noɥʇʎԀʎzɐɹƆ的回答。此外,您的 github 中有一个
utils,其中包含constants,然后是一个没有任何内容的Utils。两个文件夹。
标签: python heroku slack-api slack