sys.path.insert - how to make it global?

Stefan Franke spamfranke at bigfoot.de
Sat Apr 17 13:27:52 EDT 1999


In that case the problem seems to be somewhere else. Can
you post the traceback, your directory layout and perhaps
some isolated code?

Your code snippet says :
  # Augment search path to pull in our C library wrappers

Maybe importing C extensions makes your program fail?


The following example should resemble your situation (let
me know if it doesn't):

-------- file a.py in some_directory

# First, you can't import c
try:
    import c
except ImportError:
    print "import c failed"

# Patch sys.path
import sys
sys.path.append ("new_directory")

# b imports c with the new path
import b

-------- file b.py in some_directory

import sys
print sys.path

import c

-------- file c.py in some_directory/new_directory

print "This is c"

---------------------------

When I run this from the Python console it prints:

Python 1.5.2 (#0, Apr 13 1999, 10:51:12) [MSC 32 bit (Intel)] on win32
Copyright 1991-1995 Stichting Mathematisch Centrum, Amsterdam
>>> import a
import c failed
['', 'D:\\Programme\\Python', 'D:\\Programme\\Pythonwin', 'D:\\Programme\\Python
  [... long path snipped...]
me\\Python\\lib\\plat-win', 'D:\\Programme\\Python\\lib\\lib-tk', 'D:\\Programme
\\Python', 'D:\\Programme\\Python\\lib\\site-python', 'new_directory']
This is c


Stefan

 * * *

On Sat, 17 Apr 1999 15:31:21 GMT, Randall Hopper <aa8vb at vislab.epa.gov> wrote:

>I'd already tried that.  It's effect doesn't appear to be global:
>
>   # Augment search path to pull in our C library wrappers
>   sys.path.insert( 0, '/home/mylogin/Wrappers' )
>
>   import MapFile
>
>This allows Python to find MapFile, but this doesn't allow MapFile to
>import other modules in that same Wrappers directory.
>
>Randall
>





More information about the Python-list mailing list