Hi,

OK, write a small script that runs you python job.

Try running the job from the shell:

/usr/bin/python -v /path/to/script/update_feeds.py

This will list all the import statements, so find your imports that  
fail in the cron job ...

And then your script would be:

#!/bin/sh

PYTHONPATH= ......
export PYTHONPATH

/usr/bin/python /path/to/script/update_feeds.py


On 4 Mar 2008, at 18:27, [EMAIL PROTECTED] wrote:

>
> 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...".
>
> 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?
>
> On Mar 4, 9:02 am, Evert Rol <[EMAIL PROTECTED]> wrote:
>>> 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).
> >



=============================
Andrew Holt
Managing Director
4A Solutions Ltd

M: +44(0) 7841 340608
P: +44(0)1257 268351
Email: [EMAIL PROTECTED]

Illegitimati non su carborundum !
=============================




--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---

Reply via email to