2017-03-05 110 views
0

我试图用python,tweepy和heroku制作twitter bot, ,这里是我的python脚本。当我运行“heroku run worker”时出现“bash:* .py:command not found”

import tweepy, codecs, time 

CONSUMER_KEY = '***************' 
CONSUMER_SECRET = '*****************************' 
ACCESS_KEY = '******************************' 
ACCESS_SECRET = '****************************' 
auth = tweepy.OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET) 
auth.set_access_token(ACCESS_KEY, ACCESS_SECRET) 
api = tweepy.API(auth) 

fileObj=codecs.open('zegal.txt','r','utf-8') 
f=fileObj.readlines() 
fileObj.close() 

for line in f: 
    api.update_status(line) 
    time.sleep(900) 

这个工作当我运行“蟒蛇zegal.py”, 但是当我跑“的Heroku运行工人”这是行不通的。 它说“bash:zegal.py:命令未找到”,即使我有 zegal.py,zegal.txt,procfile,requirements.txt都在同一个文件夹中。

我在procfile 和requirements.txt文件中的“tweepy == 3.5.0”中写了“worker:zegal.py”。

我有一个heroku应用程序,因为我的文本文件有韩语句子,我想我必须使用codecs.open和utf-8。

我搜索了几天来解决这个问题,但这些解决方案都没有帮助。 我添加了工作目录环境变量的路径, 我试图“进口os.path中”例如,

scriptpath = os.path.dirname(__file__) 
filename = os.path.join(scriptpath, 'zegal.txt') 
fileObj=codecs.open(filename,'r','utf-8') 
f=fileObj.readlines() 
fileObj.close() 

,但不工作也没有。我该如何解决这个问题?我是完整的初学者。

回答

1

你需要写完整的命令在Procfile

worker: python zegal.py 

只需编写Python脚本的文件名都不行执行。你可以在Heroku文档中看到一个例子https://devcenter.heroku.com/articles/deploying-python

+0

哦,这就是我以前的尝试,它的工作!我只是认为没有“python”会有另一种方式来执行。当然你知道我错了。正如你所说,现在我写出完整的命令。我很感激。 – user7659923