Crontab 使用不正确版本的 Python 到 运行 脚本
Crontab using incorrect version of Python to run script
crontab 使用版本 2.6 到 运行 需要 2.7 到 运行 的脚本。如何将 Python 的默认版本永久设置为 2.7?
运行ning ./file.py 工作正常,就在 运行 通过 crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/
# For details see man 4 crontabs
# Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * user-name command to be executed
*,30 * * * * root /root/file.py >>/tmp/log.txt 2>&1
编辑
问题已解决
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin/python
MAILTO=root
HOME=/
# For details see man 4 crontabs
# Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * user-name command to be executed
*,30 * * * * root /usr/local/bin/python2.7 /root/file.py >>/tmp/log.txt 2>&1
如果您为 2.7 安装了单独的 python 版本,您可以使用 whereis python
查找它
我有 CentOS 6,默认是 2.6,所以这个命令 returns:
python2: /usr/bin/python2.6 /usr/bin/python2.6-config /usr/bin/python2 /usr/lib/python2.6 /usr/lib64/python2.6 /usr/local/bin/python2.7-config /usr/local/bin/python2.7 /usr/local/lib/python2.7 /usr/include/python2.6
其中 /usr/local/bin/python2.7
是我感兴趣的,所以当我在 crontab 中放置作业时,我明确选择它:
30 00 * * * /usr/local/bin/python2.7 /home/mike/job.py
更新 Python 脚本的 shebang 以明确使用 Python 2.7:
#!/usr/bin/env python2.7
第一行告诉 Unix 使用哪个解释器。
crontab 使用版本 2.6 到 运行 需要 2.7 到 运行 的脚本。如何将 Python 的默认版本永久设置为 2.7? 运行ning ./file.py 工作正常,就在 运行 通过 crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/
# For details see man 4 crontabs
# Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * user-name command to be executed
*,30 * * * * root /root/file.py >>/tmp/log.txt 2>&1
编辑 问题已解决
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin/python
MAILTO=root
HOME=/
# For details see man 4 crontabs
# Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * user-name command to be executed
*,30 * * * * root /usr/local/bin/python2.7 /root/file.py >>/tmp/log.txt 2>&1
如果您为 2.7 安装了单独的 python 版本,您可以使用 whereis python
我有 CentOS 6,默认是 2.6,所以这个命令 returns:
python2: /usr/bin/python2.6 /usr/bin/python2.6-config /usr/bin/python2 /usr/lib/python2.6 /usr/lib64/python2.6 /usr/local/bin/python2.7-config /usr/local/bin/python2.7 /usr/local/lib/python2.7 /usr/include/python2.6
其中 /usr/local/bin/python2.7
是我感兴趣的,所以当我在 crontab 中放置作业时,我明确选择它:
30 00 * * * /usr/local/bin/python2.7 /home/mike/job.py
更新 Python 脚本的 shebang 以明确使用 Python 2.7:
#!/usr/bin/env python2.7
第一行告诉 Unix 使用哪个解释器。