By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
435,241 Members | 799 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 435,241 IT Pros & Developers. It's quick & easy.

Traceback when trying to run script from cron?

P: n/a
Hi all,

When trying to run this python script from cron, I get the following
error:
Traceback (most recent call last):
File "/home/lybp/public_html/wa/wa.py", line 14, in ?
import MySQLdb
ImportError: No module named MySQLdb

The cron command is python /home/lybp/public_html/wa/wa.py

Any idea why MySQLdb wouldn't like this?

Thanks!
Erik

Apr 15 '07 #1
Share this Question
Share on Google+
2 Replies


P: n/a
On Apr 14, 10:50 pm, Dennis Lee Bieber <wlfr...@ix.netcom.comwrote:
On 14 Apr 2007 18:56:00 -0700, "erikcw" <erikwickst...@gmail.com>
declaimed the following in comp.lang.python:
The cron command is python /home/lybp/public_html/wa/wa.py
Any idea why MySQLdb wouldn't like this?

Does the cron service run with the same PYTHONPATH? Stuff in a
"print sys.path" (or a write to some file you can later examine) before
the deadly import, and compare direct invocation with the cron
invocation.
--
Wulfraed Dennis Lee Bieber KD6MOG
wlfr...@ix.netcom.com wulfr...@bestiaria.com
HTTP://wlfraed.home.netcom.com/
(Bestiaria Support Staff: web-a...@bestiaria.com)
HTTP://www.bestiaria.com/
You're right. Something is not right with my sys.path.

cron:
'/home/lybp/public_html/winneralert', '/usr/lib/python2.2', '/usr/lib/
python2.2/plat-linux2', '/usr/lib/python2.2/lib-tk', '/usr/lib/
python2.2/lib-dynload', '/usr/lib/python2.2/site-packages']
Traceback (most recent call last):
File "/home/lybp/public_html/winneralert/wa.py", line 18, in ?
import MySQLdb
ImportError: No module named MySQLdb
SHELL:
# python wa.py
['/home/lybp/public_html/winneralert', '/usr/local/lib/python2.4/site-
packages/setuptools-0.6c5-py2.4.egg', '/usr/local/lib/python2.4/site-
packages/MySQL_python-1.2.2-py2.4-linux-i686.egg', '/usr/local/lib/
python24.zip', '/usr/local/lib/python2.4', '/usr/local/lib/python2.4/
plat-linux2', '/usr/local/lib/python2.4/lib-tk', '/usr/local/lib/
python2.4/lib-dynload', '/usr/local/lib/python2.4/site-packages']
+OK Hello there.

Why isn't cron able to import the MySJL module? How do I make this
work? (newbie)

Thanks!
Erik

Apr 17 '07 #2

P: n/a
On Tue, 2007-04-17 at 12:33 -0700, erikcw wrote:
You're right. Something is not right with my sys.path.

cron:
'/home/lybp/public_html/winneralert', '/usr/lib/python2.2', '/usr/lib/
python2.2/plat-linux2', '/usr/lib/python2.2/lib-tk', '/usr/lib/
python2.2/lib-dynload', '/usr/lib/python2.2/site-packages']
Traceback (most recent call last):
File "/home/lybp/public_html/winneralert/wa.py", line 18, in ?
import MySQLdb
ImportError: No module named MySQLdb
SHELL:
# python wa.py
['/home/lybp/public_html/winneralert', '/usr/local/lib/python2.4/site-
packages/setuptools-0.6c5-py2.4.egg', '/usr/local/lib/python2.4/site-
packages/MySQL_python-1.2.2-py2.4-linux-i686.egg', '/usr/local/lib/
python24.zip', '/usr/local/lib/python2.4', '/usr/local/lib/python2.4/
plat-linux2', '/usr/local/lib/python2.4/lib-tk', '/usr/local/lib/
python2.4/lib-dynload', '/usr/local/lib/python2.4/site-packages']
+OK Hello there.

Why isn't cron able to import the MySJL module? How do I make this
work? (newbie)
You have two Python versions installed on your system. Cron picks the
system-installed Python 2.2 in /usr, whereas your shell picks the
installation of Python 2.4 in /usr/local. Obviously, your Python 2.2
installation doesn't know MySQL, your Python 2.4 installation does.

Your cron script needs to set the PATH environment variable correctly to
include /usr/local/bin before /usr/bin so that it'll launch the correct
Python version.

HTH,

Carsten
Apr 17 '07 #3

This discussion thread is closed

Replies have been disabled for this discussion.