在与crontab一起使用之前,我正在测试一个(python)bot脚本。有人建议我运行一个shell脚本,在crontab中运行python脚本。为了让shell脚本运行,我需要激活venv。这就是问题所在。当我尝试运行run_socialbot.py时,我得到:
Traceback (most recent call last):
File "/home/gsb/socialbot.py", line 3, in <module>
from instapy import InstaPy
ModuleNotFoundError: No module named 'instapy'
即使在venv中安装了instapy。当我用“python3”打开解释器并尝试在激活venv时导入instapy时,它工作正常。以下是shell脚本代码:
#! /bin/bash
source /home/gsb/venv/bin/activate
/usr/bin/python3 /home/gsb/socialbot.py
有人能帮忙吗?提前谢谢
我在digitalocean服务器上运行这个。Ubuntu 20.04
您的shell脚本激活了venv,但随后它显式地调用了绝对路径
/usr/bin/python3
。这不是venv Python可执行文件。激活venv的整个要点是设置$PATH
,以便python
指向venv解释器在包装器脚本中,将其更改为:
或者,您可以完全删除bash包装器脚本,并将一个venv shebang放入
socialbot.py
,然后直接在crontab中使用这个Python文件。使文件可执行,并添加为第一行:相关问题 更多 >
编程相关推荐