내 dev 노트북 (Mac OS X)에서 cron을 통해 매 5 분마다 장고 스크립트를 실행하려고합니다.Django + Unix Cron, django.db를 가져올 수 없습니다.
import sys
import os
def setup_environment():
pathname = os.path.dirname(sys.argv[0])
sys.path.append(os.path.abspath(pathname))
sys.path.append(os.path.normpath(os.path.join(os.path.abspath(pathname), '../')))
os.environ['DJANGO_SETTINGS_MODULE'] = 'settings'
setup_environment()
from common.models import TweetCache
import datetime
def main():
print "(%s) Caching tweets..." % str(datetime.datetime.now())
previous_tweets = TweetCache.objects.filter(username='atmospherian')
for prev in previous_tweets:
prev.delete()
import twitter
api = twitter.Api()
tweets = api.GetUserTimeline('atmospherian')
for t in tweets:
tc = TweetCache(username='atmospherian', date=t.created_at, text=t.text)
tc.save()
if __name__ == '__main__':
main()
의 crontab : 시스템에서
*/5 * * * * 파이썬 /absolute/path/to/tweet_cache.py
오류 다음 스크립트의 코드는 mail :
X-Cron-Env: <SHELL=/bin/sh>
X-Cron-Env: <PATH=/usr/bin:/bin>
X-Cron-Env: <LOGNAME=jason>
X-Cron-Env: <USER=jason>
X-Cron-Env: <HOME=/Users/jason>
Date: Tue, 16 Feb 2010 17:45:00 -0500 (EST)
Traceback (most recent call last):
File "/Users/jason/Development/bandistry/tweet_cache.py", line 22, in <module>
from common.models import TweetCache
File "/Users/jason/Development/bandistry/common/models.py", line 1, in <module>
from django.db import models
ImportError: No module named django.db
아무도 내가 무슨 일을 잘못하고 있다고 말할 수 있습니까?
내 장고 설치 경로는 다음과 같습니다. /Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/django? –
트릭을 했어, 난 cron이 시스템과 독립적으로 PATH를 지정해야하는 자체 환경을 생성하는 것 같아 경로에 장고가없는 것 같아요. –