2017-03-05 2 views
0

J'essaie de créer un bot Twitter en utilisant python, tweepy et heroku, et voici mon script python."bash: * .py: commande introuvable" lorsque j'exécute "heroku run worker"

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) 

ceci fonctionne quand je lance « zegal.py python », mais il ne fonctionne pas quand je lance « travailleur de l'exécution de Heroku ». il dit "bash: zegal.py: commande introuvable" même si j'ai zegal.py, zegal.txt, procfile, requirements.txt tous dans le même dossier.

J'ai écrit "worker: zegal.py" dans le fichier proc et "tweepy == 3.5.0" dans le fichier requirements.txt.

J'ai une application heroku, et parce que mon textfile a des phrases coréennes, je pense que je dois utiliser codecs.open et utf-8.

J'ai cherché des jours pour résoudre ce problème, mais aucune de ces solutions n'a aidé. Je ajouté le répertoire de travail au chemin de la variable d'environnement, et je essayé « os.path d'importation », par exemple,

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

mais cela ne fonctionne pas non plus. Comment puis-je resoudre ceci? Je suis débutant complet.

Répondre

1

Vous devez écrire la commande complète pour exécuter dans Procfile

worker: python zegal.py 

écriture juste nom du script python ne fonctionnera pas. Vous pouvez voir un exemple dans les documents Heroku https://devcenter.heroku.com/articles/deploying-python

+0

oh, c'est ce que j'ai essayé avant, et cela a fonctionné! Je pensais juste qu'il y aurait une autre façon de s'exécuter sans "python". Bien sûr, vous savez que j'avais tort. Maintenant, j'écris la commande complète comme vous l'avez dit. J'apprécie cela. – user7659923