Heroku ImportError:没有名为tweepy的模块 - 但它已安装并在本地运行良好

时间:2015-01-13 14:34:50

标签: python heroku twitter tweepy

我使用Tweepy库在Python中制作了一个非常简单的Twitter机器人。一切都在本地运行得很好,当我按照它应该的那样运行正确的脚本时,它会发推文。但是,我想自动执行此操作,以便每天发送几次推文,因此尝试使用Heroku Scheduler进行此操作。

我能够毫无问题地推送到Heroku,但是当我尝试在Heroku上运行工作时,我收到此错误消息(这意味着调度程序无法正常工作,因为它&#39 ; s运行相同的过程):

    Running `worker` attached to terminal... up, run.8157                                                                                                            
/app/.bash_profile: line 6: parts: command not found                                                                                                             
Traceback (most recent call last):                                                                                                                               
  File "/app/workspace/botlovesyou/lovescript.py", line 4, in <module>                                                                                           
    import tweepy, time                                                                                                                                          
ImportError: No module named tweepy  

所以,呃...现在怎么样?我用Google搜索并找到了this,但我不确定如何实际修复它。 This question看起来似乎很相似,但我没有其他缺少的依赖导致他的问题。

我已经尝试过再次运行pip install tweepy,但当然它说“要求已经满足了”#39;我已经尝试了pip卸载它然后pip再次安装它 - 它重新安装没有问题,但是当它在heroku上时我得到了同样的错误。我也尝试过安装上面链接中提到的buildpack,但它无法构建,也不允许我推送,所以我将其删除了。

编辑:我现在也尝试使用setup.py进行git克隆和安装tweepy。同样,安装运行没有错误,但Heroku仍然说没有名为Tweepy的模块。

Tweepy肯定安装在site-packages目录中。我错过了什么?

非常感谢。

1 个答案:

答案 0 :(得分:2)

问题解决了(无论如何这个问题)。

安装在requirements.txt文件中到达PIL时中止 - 它无法通过pip安装,只是跳过安装后的所有内容。我不需要PIL用于这个项目,所以只是将其从需求中删除(我不知道为什么它首先在需求中,我认为这是一个nitrous.io预安装)。在这种情况下非常简单的解决方案。

编辑添加 - 在Nitrous上启动一个新的Python框,PIL已正确预装。所以我认为我的初始安装可能已经损坏。

唉。再次编辑。 Nitrous似乎又吃了PIL,或者Heroku也吃过。同样的错误。再次将其从要求中删除。