execute python script question

Gabriel Rossetti gabriel.rossetti at mydeskfriend.com
Tue Mar 11 09:49:25 CET 2008


Michael Wieher wrote:
> stupid question: you have myPackage somewhere on sys.path?
>
> I mean, module1.py only knows it lives in a directory, it doesn't know 
> anything about anything above it.
>
>
>
> 2008/3/10, Gabriel Rossetti <gabriel.rossetti at mydeskfriend.com 
> <mailto:gabriel.rossetti at mydeskfriend.com>>:
>
>     Hello,
>
>     I have been developping something in python that has the following
>     hierarchy :
>
>     project/src/myPackage/
>     project/src/myPackage/__init__.py
>     project/src/myPackage/module1.py
>     project/src/myPackage/module2.py
>     project/src/myPackage/test/
>     project/src/myPackage/test/__init__.py
>     project/src/myPackage/test/test_module1.py
>     project/src/myPackage/test/test_module2.py
>     project/src/myPackage/mySubPackage/__init__.py
>     project/src/myPackage/mySubPackage/module1.py
>     project/src/myPackage/mySubPackage/test/
>     project/src/myPackage/mySubPackage/test/__init__.py
>     project/src/myPackage/mySubPackage/test/module1.py
>     ...
>
>     up until now, I had been executing my modules from inside
>     project/src/myPackage/
>     but I realised that that is wrong (while implementing the test suite)
>     and that since all my modules had relative imports (if module2 needed
>     module1, it would just say : import module1) I changed them to
>     myPackage.module1 for example. Now my test suite is happy, I can say :
>     test.sh myPackage.test and it tests everything. The only problem
>     now is
>     that I can't execute the scripts from inside or outside the myPackage
>     dir, I get this :
>
>     from outside :
>
>     Traceback (most recent call last):
>       File "myPackage/module1.py", line 15, in <module>
>         from myPackage import constants, utils
>     ImportError: No module named myPackage
>
>     or if from inside it :
>
>     Traceback (most recent call last):
>       File "module1.py", line 15, in <module>
>         from myPackage import constants, utils
>     ImportError: No module named myPackage
>
>     can anybody please help me? I don't think I understood the whole
>     package/module thing I think... I think some people do some sort of
>     importing in the __init__.py files but I'm not sure this helps in
>     this case.
>
>     Thanks,
>     Gabriel
>
>
Hello Michael,

not a stupid question, I think that may be it. I tried setting 
PYTHONPATH like Sam suggested and it worked, but I was unable to do it 
programmically. I tried putting it in the __init__.py file like a web 
post suggested but it wasn't run until after I set PYTHONPATH, and once 
that was done there is no need (that I can see anyways) to set it in 
__init__.py.

Thanks for your help,
Gabriel



More information about the Python-list mailing list