cron未启动正常工作的python脚本
让克朗在我的树莓皮3b上工作,我有很多麻烦。 我写了一个python脚本,从thonny或terminal启动它没有问题,它运行平稳 但是,以以下方式启动cron作业时(根据测试时间相应更改分钟和小时): 我收到以下错误消息:cron未启动正常工作的python脚本,python,cron,python-3.5,libraries,Python,Cron,Python 3.5,Libraries,让克朗在我的树莓皮3b上工作,我有很多麻烦。 我写了一个python脚本,从thonny或terminal启动它没有问题,它运行平稳 但是,以以下方式启动cron作业时(根据测试时间相应更改分钟和小时): 我收到以下错误消息: Traceback (more recent call last): File "/home/pi/main.py", line 9, in <module> import tweepy ImportError: No
Traceback (more recent call last):
File "/home/pi/main.py", line 9, in <module>
import tweepy
ImportError: No module named 'tweepy'
这是一个与正在运行的Cron版本相关的问题
我试图更新到最新版本,但没有结果
我开始没主意了,
任何帮助都将不胜感激。如果您正在运行一个虚拟环境,您在shell脚本中的路径需要用于该虚拟环境。下面是我如何在AWS linux实例上运行shell。你可以随便玩玩,但我花了一段时间才弄明白。也许只需在cron中添加长环境路径并跳过shell脚本 这是在我的壳里面
/usr/local/bin/pipenv run ~/.local/share/virtualenvs/ec2-user-zzkNbF-x/bin/python /home/ec2-user/my_path_to_file/my_file.py
这是我的crontab设置
0 21 * * mon-fri /home/ec2-user/my_path_to_file/my_shell.sh
从脚本工作的终端,例如,如果使用
python3 main.py
运行脚本,请查看哪个python3
的输出。它是否与cron作业中的相同(/usr/bin/python3
)?是的。同样的路径很好,那么您能说出您使用的是哪个crontab
,系统范围的/etc/crontab
还是用户特定的?作为能够很好地运行脚本的用户,您可以使用crontab-e
来编辑特定于用户的脚本。我相信可以使用系统范围的脚本,谢谢。我一到家就确认。此外,我还编辑了这个问题,如果使用crontab-e
将命令添加到用户的crontab将不起作用,那么下一步应该是检查终端和cronjob中的sys.path
是否相同。在您的工作终端中,您是否可以运行python3-msite
并记录输出?然后运行crontab-e
并添加***/usr/bin/python3-m site>/home/out.txt
(或类似内容)。等待一分钟,然后将out.txt
中的文本与上一个命令的输出进行比较…Thx Jonathan。我试试看。我是一个noob,但也许这是我游戏的前进方向,我没有使用虚拟环境。不过,我还是要试一试!如果您没有使用虚拟环境,这不是您的问题,但找到正确的路径是非常重要的。但你的错误本身听起来不像是一个cron问题。这是关于定位tweepy的问题。我设法让tweepy在cron中工作,但现在问题出在beautifulsoup上。你介意帮我找到正确的路吗?提出一个新问题。最好让整个论坛来寻找好的解决方案。你是对的。谢谢你的建议
/usr/local/bin/pipenv run ~/.local/share/virtualenvs/ec2-user-zzkNbF-x/bin/python /home/ec2-user/my_path_to_file/my_file.py
0 21 * * mon-fri /home/ec2-user/my_path_to_file/my_shell.sh