[Tutor] MySQL and Python

Danny Yoo dyoo@hkn.eecs.berkeley.edu
Mon, 29 Oct 2001 12:13:11 -0800 (PST)


On Mon, 29 Oct 2001, Jackson wrote:

> Can the MySQLdb module be installed into the cgi-bin dir, and called
> with import /path_to_cgi-bin/MySQLdb ?

We can do something similar to what you're thinking: we can append() the
cgi-bin path to the sys.path variable.  Once you do this, subsequent
imports will also look the cgi-bin directory for modules.

Here's an example: Let's say that I have the following files in a personal
directory, like "/home/dyoo/src/python":

###
[dyoo@tesuque python]$ ls /home/dyoo/src/python
dannytest.py  test.py
###


We can import these modules if we add them to the sys.path:

###
>>> import sys     
>>> print sys.path
['', '/opt/Python-2.1.1/lib/python2.1',
'/opt/Python-2.1.1/lib/python2.1/plat-linux2',
'/opt/Python-2.1.1/lib/python2.1/lib-tk',
'/opt/Python-2.1.1/lib/python2.1/lib-dynload',
'/opt/Python-2.1.1/lib/python2.1/site-packages',
'/opt/Python-2.1.1/lib/python2.1/site-packages/Numeric']
>>> import dannytest
Traceback (most recent call last):
  File "<stdin>", line 1, in ?
ImportError: No module named dannytest
>>> sys.path.append("/home/dyoo/src/python")
>>> import dannytest
>>> print dannytest.__file__
/home/dyoo/src/python/dannytest.py 
>>> import test 
>>> print test.__file__
/opt/Python-2.1.1/lib/python2.1/test/__init__.pyc
###

Here, we can see the list of directories that Python scans when we ask it
to 'import' things.

Note, though, that Python scans the sys.path in order, so if there's a
module that's named the same in the standard Python library, that's the
one Python will use.  That's what's happening above with the "test"
module, so be careful.


Hope this helps!