Help with pythonpath
mg
mg.mailing-list at laposte.net
Mon Jun 6 03:01:43 EDT 2005
Tim Roberts wrote:
>Observer <observer at moscomono.ath.cx> wrote:
>
>
>>Hi, im a newbie both to python and this list.
>>I hope someone can help me whith this:
>>
>>I have a directory structure like this:
>>.
>>|-- src
>>| `-- pkg
>>| |-- __init__.py
>>| |-- main.py
>>| `-- spkg1
>>| |-- __init__.py
>>| `-- config.py
>>`-- src2
>> `-- pkg
>> |-- __init__.py
>> `-- spkg2
>> |-- __init__.py
>> `-- config2.py
>>
>>and main.py is a python script that contains this imports:
>>
>>
>>
>>from pkg.spkg1 import config
>>from pkg.spkg2 import config2
>
>
>>executed in linux whith this:
>>
>>env PYTHONPATH=src:src2 src/pkg/main.py
>>Traceback (most recent call last):
>> File "src/pkg/main.py", line 4, in ?
>> from pkg.spkg2 import config2
>>ImportError: No module named spkg2
>>
>>changing the order of the python path only inverts the problem, is there
>>any way to solve this without changing the directory structure?
>>
>>
>
>Nope. When Python goes to look for a package called "pkg", it starts at
>the beginning of PYTHONPATH and stops as soon as it finds one. You either
>need to use different names for the two packages (pkg1, pkg2), or use a
>symbolic link to link spkg2 into the src directory.
>
>
If I remember, I think you need to add an __init__.py file just in your
directories src & src2.
Moreover, you can add the path of src and src2 to the variable sys.path
at the beginning of your main script (in that case, it not necessary to
define PYTHONPATH)
I hope I help you
Mathieu
More information about the Python-list
mailing list