2015-06-27 5 views
2

crontab использует версию 2.6 для запуска скрипта, для выполнения которого требуется 2,7. Как установить постоянную версию Python по умолчанию на 2.7? работает ./file.py прекрасно работает, его только тогда, когда его запустить через кронтабCrontab использует неправильную версию Python для запуска скрипта

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 
+0

В вашем окружении установлен python 2.7? – Pradheep

+0

да, я могу запустить ./file.py в порядке, только когда его запустить через crontab его вопрос – NeonLights86

+0

, где установлен python2.7? –

ответ

3

Если у вас есть отдельная версия питона, установленного для 2.7 вы можете искать он с whereis python

у меня есть CentOS 6, который поставляется с 2.6 по умолчанию, так что эта команда возвращает:

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 это один я заинтересован в, поэтому, когда я кладу на работу в кронтаб, я выбираю его в явном виде:

30 00 * * * /usr/local/bin/python2.7 /home/mike/job.py 
+0

полный путь исправил его, спасибо. – NeonLights86

4

Обновление shebang вашего сценария Python использовать Python 2.7 в явном виде:

#!/usr/bin/env python2.7 

Эта первая строка сообщает Unix, какой интерпретатор использовать.

Смежные вопросы