激活venv并从shell脚本运行python脚本



在将(python(bot脚本与crontab一起使用之前,我正在测试它。有人建议我运行一个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。当我打开翻译时;蟒蛇3";并尝试在激活venv的同时导入instapy,它运行良好。这是shell脚本代码:

#! /bin/bash
source /home/gsb/venv/bin/activate 
/usr/bin/python3 /home/gsb/socialbot.py

有人能帮忙吗?提前感谢

我在数字海洋服务器上运行这个。Ubuntu 20.04

您的shell脚本激活venv,但随后它显式调用绝对路径/usr/bin/python3。这不是venv Python可执行文件。激活venv的全部目的是设置$PATH,使python指向venv解释器。

在包装脚本中,将其更改为:

python /home/gsb/socialbot.py

或者,您可以完全删除bash包装器脚本,并将venv shebang放入socialbot.py中,然后直接在crontab中使用此Python文件。使文件可执行,并添加为第一行:

#!/home/gsb/venv/bin/python

相关内容

  • 没有找到相关文章

最新更新