18.4 Changing the Module Search Path

In Chapter 15, we mentioned that the module search path is a list of directories initialized from environment variable PYTHONPATH, and possibly .pth path files. What we haven't shown you until now is how a Python program can actually change the search path, by changing a built-in list called sys.path (the path attribute in the built-in sys module). sys.path is initialized on startup, but thereafter, you can delete, append, and reset its components however you like:

>>> import sys >>> sys.path ['', 'D:\\PP2ECD-Partial\\Examples', 'C:\\Python22', ...more deleted...] >>> sys.path = [r'd:\temp']                  # Change module search path >>> sys.path.append('c:\\lp2e\\examples')    # for this process only. >>> sys.path ['d:\\temp', 'c:\\lp2e\\examples'] >>> import string Traceback (most recent call last):   File "<stdin>", line 1, in ? ImportError: No module named string

You can use this to dynamically configure a search path inside a Python program. Be careful: if you delete a critical directory from the path, you may lose access to critical utilities. In the last command in the example, we no longer have access to the string module, since we deleted the Python source library's directory from the path. Also remember that such settings only endure for the Python session or program that made them; they are not retained after Python exits.



Learning Python
Learning Python: Powerful Object-Oriented Programming
ISBN: 0596158068
EAN: 2147483647
Year: 2003
Pages: 253
Authors: Mark Lutz

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net