2010-05-27 3 views

답변

15

virtualenv의 정품 인증 스크립트는 매우 간단합니다. 주로 virtualenv의 파이썬 인터프리터에 대한 경로를 설정합니다. 대화 형 셸이 아닌 다른 것들 (설정하는 PS1, 오래된 변수 저장하기 등)은 실제로 필요하지 않습니다. 그래서 가장 쉬운 방법은 두 가지 방법 중 하나를 수행 할 수 있습니다 올바른 파이썬 인터프리터와 파이썬 스크립트를 실행하는 것입니다

1. 당신의 VIRTUALENV의 파이썬 인터프리터를 사용하는 파이썬 스크립트를 설정

#!/home/user/virtualenv/bin/python 

을 그리고 정상으로, 당신의 crontab에서 스크립트를 실행 : 당신의 VIRTUALENV의 인터프리터가 ~/virtualenv/bin/python에있다 가정 할 때, 당신은 당신의 파이썬 스크립트의 상단에 해당 경로를 넣을 수 있습니다.

2. 실행하여 cron 작업에 적절한 파이썬 인터프리터 스크립트

스크립트를 가정 ~/bin/cronjob에 있고 당신의 VIRTUALENV의 파이썬 인터프리터는 당신은 당신의 crontab에 넣고 수 ~/virtualenv/python에 있습니다 :

* * * * * /home/user/virtualenv/python /home/user/bin/crontab 
+0

easy_install 라이브러리의 경로는 어떻게됩니까? – Timmy

+2

가상 환경이나 "글로벌"site-packages 디렉토리에 설치되어 있으면 해당 디렉토리를 찾아야합니다. 그렇지 않으면, 당신은'$ PYTHONPATH'에 넣어야 할 것이고, 약간 더 엉성 해지지 만'/ usr/bin/env' 또는 그와 비슷한 것으로 파이썬 빈을 실행함으로써 완성 될 수 있습니다. – mipadi

+1

마지막 코드 블록은 "/ home/bin/cronjob"으로 끝나야합니다. –

1

내 접근 방식은 항상 crontab을 가능한 단순하게 유지하고 crontab에 의해 호출되는 스크립트 내의 모든 구성을 처리합니다.

1) 쉘 스크립트를 작성 : 예 /var/webapp/.env/bin 가 VIRTUALENV 위치입니다

#!/bin/sh 
PATH="/var/webapp/.env/bin:$PATH" 
export PATH 
cd /var/webapp/ 
python test.py 

을 /var/webapp/cron.sh 위해. PATH를 설정하면 소스를 실행할 필요가 없습니다 ./activate

2) 환경을 올바르게 설정하십시오. 예를 들어, 장고 응용 프로그램 :

#!/usr/bin/env python 

import os 
from datetime import datetime 

os.environ['DJANGO_SETTINGS_MODULE'] = 'settings.production' 
os.environ['DJANGO_CONF'] = 'settings.production' 

from util.models import Schedule 

dset = Schedule.objects.all() 
for rec in dset: 
    print rec 

print 'cron executed %s' % datetime.today() 

이 예에서 장고 설정은 설정/production.py

3) 마지막으로, 편집은/etc/crontab을에 있습니다. 예를 들어 30 시간마다 매일 실행하려면 :

오류 또는 디버그 메시지를 찾는 데 도움이되는 로그를 생성하는 것이 중요합니다.

관련 문제