gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-05 04:48:38 24 4
gpt4 key购买 nike

在将它与 crontab 一起使用之前,我正在测试一个 (python) 机器人脚本。我被建议运行一个在 crontab 中运行 python 脚本的 shell 脚本。为了运行 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 解释器。

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

python /home/gsb/socialbot.py

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

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

关于python - 激活 venv 并从 shell 脚本运行 python 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67978568/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com