运行 一个 python 脚本在每天的固定时间用 crontab

Running a python script at a fixed time everyday with crontab

首先,我已经尝试了本网站和其他网站上建议的所有方法,但仍然无法正常工作。 我的 python 脚本位于我的主文件夹中。它导入请求、时间和其他第三方模块等模块。它适用于命令行。 但它不适用于 crontab。我认为问题是当它来自 cron 的 运行 时,导入不起作用并且脚本失败。 crontab:

PATH=/sbin:/bin:/usr/sbin:/usr/bin
SHELL=/bin/bash
PYTHONPATH=/home/chanzerre:/usr/lib64/python35.zip:/usr/lib64/python3.5:/usr/lib64/python3.5/plat-linux:/usr/lib64/python3.5/lib-dynload:/usr/lib64/python3.5/site-packages:/usr/lib/python3.5/site-packages
* * * * * /home/chanzerre/script.py

我的 Python 脚本的结构:

#! /usr/bin/python3.5
import requests as req
import time
from pprint import pprint
# third party imports here

#code here

有人能帮忙吗? 如果需要,会提供更多详细信息。

P.S。 请不要将其标记为欺骗,因为我已经尝试了其他人提出的类似问题中建议的所有方法,为了我一生的热爱,它仍然不起作用。

您是否尝试过将 script.py 设为可执行文件?只需键入 Python 文件的路径不会 运行 脚本。您需要在文件中添加一个 shebang:

#!/usr/bin/python

然后使其可执行:

$ mv /home/chanzerre/script.py /home/chanzerre/script
$ chmod +x /home/chanzerre/script

那么你的 crontab 就变成了

* * * * * /home/chanzerre/script

试试看它是否运行你的文件。

为了运行,您是否设置了脚本所需的所有环境变量?如果没有,它不会 work.For 例如,如果您 运行 在代理服务器后面运行该脚本,并且未设置代理变量,它将无法工作。 在 crontab 或 python 脚本本身中设置代理变量,它将起作用。