PYTHONPATH and modules

Bruno Desthuilliers bruno.42.desthuilliers at websiteburo.invalid
Thu Aug 28 09:49:42 EDT 2008


Juan a écrit :
> Hi
> 
> I am programming a little script that makes use of a module I
> developed before. The utils are inside the directory src of the
> directory utils, and the package is nutum.utils. The script is in the
> directory src inside the directory sysinfo, and the package is
> nutum.sysinfo.

Won't work, cf below.

> Well, if not clear, this is the list of files:
> 
> ls -lR ~/workspace (imaginary output):
> 
> utils/src/nutum/__init__.py
> utils/src/nutum/utils/__init__.py
> utils/src/nutum/utils/general.py
> utils/src/nutum/utils/elapsed_time.py
> utils/src/nutum/utils/execute_command.py
> utils/src/nutum/utils/size_units.py
> 
> sysinfo/src/nutum/__init__.py
> sysinfo/src/nutum/sysinfo/__init__.py
> sysinfo/src/nutum/sysinfo/sysinfo.py
> sysinfo/src/nutum/sysinfo/modules/__init__.py
> sysinfo/src/nutum/sysinfo/modules/base_module.py
> sysinfo/src/nutum/sysinfo/modules/os.py

A Python package is a filesystem directory with an __init__.py file in 
it. In your above layout, you have two *distinct, unrelated* packages 
both named nutum. The first found in sys.path will shadow the second.

You either need to rename one, or "refactor" your layout to have utils 
and sysinfo under the same root package, ie:

workspace/src/nutum/__init__.py
workspace/src/nutum/utils/__init__.py
workspace/src/nutum/utils/general.py
workspace/src/nutum/utils/elapsed_time.py
workspace/src/nutum/utils/execute_command.py
workspace/src/nutum/utils/size_units.py
workspace/src/nutum/sysinfo/__init__.py
workspace/src/nutum/sysinfo/sysinfo.py
workspace/src/nutum/sysinfo/modules/__init__.py
workspace/src/nutum/sysinfo/modules/base_module.py
workspace/src/nutum/sysinfo/modules/os.py

HTH



More information about the Python-list mailing list