> OK, I did what you instructed and checked the log file, which did > contain the system path and the traceback about the "can't import > module...".
Your script did run (you thought it completely failed), but -only- up the 'import feedparser' part. Anything before that ('print sys.path') actually worked fine. Printing the sys.path is often quite useful to debug things like this. > I see the paths specified don't contain the path to the feedparser > module, which explains the error. My question is how do I add this > path in the cron, especially since the script runs from the command > line? Presumably the environment variables you can set in your cron file are limited (to, eg HOME and EMAIL), which is why things don't work. Assuming this cron works the same as other ones I know, you can set the variables on the command line itself; that may work. Try this entry in your cron (and remove the top part with the environment variable settings): 1 * * * * PYTHONPATH=/path/to/python2.3/site-packages:/path/to/django/ app DJANGO_SETTINGS_MODULE=myproject.settings /usr/bin/python /path/ to/script/update_feeds.py > /path/to/script/update_feeds.log 2>1 (in case mailers mess up things: there are no line breaks in that line) The log file part is still there to check if things go wrong, but if it works fine, remove that part ('> /path/to/script/update_feeds.log 2>1') If this seems a bit messy, you can alter the sys.path at the top of your script, and set the DJANGO_SETTINGS_MODULE from there as well: import sys sys.path.extend(['/path/to/python2.3/site-packages', '/path/to/django/ app') import os os.environ['DJANGO_SETTINGS_MODULE'] = 'myproject.settings' . . . import feedparser <etc> I prefer the first, since then the script itself is more portable (no hardcoded paths etc). I also came across this thread: http://groups.google.com/group/django-users/browse_thread/thread/d77412f3bbbd1d1a/64d567aadbf4b3f9?hl=en&lnk=gst&q=cron#64d567aadbf4b3f9 which uses something slightly different (solution at the bottom). But since this involves settings everything in your .bashrc (including possibly silly greetings like 'echo "How are you today"), that may be a bit overkill. Let me know if it works. >>> Well part of the problem is that the script itself works fine. I can >>> run from the command line without a hitch. But when I try to run it >>> via the cron, I get the traceback about the feedparser module. >> >> I believe that, because your PYTHONPATH will be set correctly from >> the >> command line; but possibly not from a default (basic) shell that cron >> uses. >> So, again, try putting those two statements at the top of your >> script, >> -before- the 'import feedparser' statement, and let cron do its job. >> You may need to redirect the output, eg >> 1 * * * * /usr/bin/python /path/to/script/update_feeds.py > /path/to/ >> script/update_feeds.log 2>&1 >> to get that output (I'm not sure how you got the error from the cron >> job; through email?) >> >> Check the log file: before the traceback, you should see the result >> of >> 'print sys.path'. Check if that includes the correct directories. >> >>>> Top of script (possibly just below the she-bang): >> >>>> import sys >>>> print sys.path >> >>>>>>> Traceback (most recent call last): >>>>>>> File "/path/to/script/update_feeds.py", line 10, in ? >>>>>>> import feedparser >>>>>>> ImportError: No module named feedparser >> >>>>>>> And here is the cron: >> >>>>>>> export PYTHONPATH=/path/to/python2.3/site-packages:/path/to/ >>>>>>> django/ >>>>>>> app >>>>>>> export DJANGO_SETTINGS_MODULE=myproject.settings >>>>>>> 1 * * * * /usr/bin/python /path/to/script/update_feeds.py >> >>>>>>> I'm running the cron on my Dreamhost account BTW. >> >>>>>> Did you try printing out the sys.path at the top of your >>>>>> script, so >>>>>> see if the PYTHONPATH is picked up correctly from the cron >>>>>> environment >>>>>> settings? I'd guess it should, but it may go wrong there (I'm no >>>>>> cron >>>>>> expert). > > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Django users" group. To post to this group, send email to django-users@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/django-users?hl=en -~----------~----~----~----~------~----~------~--~---