Cron for python脚本找不到安装在python虚拟环境中的库

2024-10-03 23:27:30 发布

您现在位置:Python中文网/ 问答频道 /正文

Cron调用python脚本会抛出Module not found的错误,对于已安装并正常工作的库,当python脚本在ssh上的virtualenv中单独执行时

Python脚本在virtualend的ssh中运行,现在尝试为该脚本设置cron并添加错误日志

错误日志

ModuleNotFoundError:没有名为“google.cloud”的模块

想要按照新的python3.6安装而不是python2.7默认路径设置库路径吗


Tags: 模块路径脚本cloudvirtualenv错误googlenot
1条回答
网友
1楼 · 发布于 2024-10-03 23:27:30

Cronjobs运行在与典型bashshell不同的环境中。在运行cronjob之前,需要激活virtualenv

假设您有一个名为“/a/b/main.py”的python文件和一个virtualenv“/a/b/env”。下面是一个cronjob示例,每晚12点运行脚本(使用crontab -e创建):

0 0 * * * source /a/b/env/bin/activate && python /a/b/main.py

GOTCHA:cron默认在shshell中运行,而不是bash。如果您想使用bash,您需要显式地指定它(例如/bin/bash ./something.sh),或者在crontab中定义SHELLenv var(在顶部包括SHELL=/bin/bash

相关问题 更多 >