PYTHONPATH和模块

你好
我正在编程一个使用模块i的脚本
开发之前. utils在目录SRC内部
目录用户,包装为nutum.utils.脚本在
目录sysinfo中的目录SRC,包装为
nutum.sysinfo.好吧,如果不清楚,这是文件列表:
LS -LR〜/工作区(虚构输出):
utils/src/nutum/__ init__.py
utils/src/nutum/utils/__ init__.py
utils/src/nutum/utils/enstry.py.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.py
sysinfo/src/nutum/sysinfo/模块/__ init__.py
sysinfo/src/nutum/sysinfo/模块/base_module.py.py
sysinfo/src/nutum/sysinfo/模块/os.py
因此,从主目录中运行此命令时:
pythonpath = workspace/utils/src/:workspace/sysinfo/src python -m
nutum.sysinfo.sysinfo -config-file/home/juan/sysinfo.config.ini
我得到此输出:
Trackback(最近的最新电话):
文件"/usr/lib/python2.5/runpy.py",第85行,在run_module中
loader = get_loader(mod_name)
文件"/usr/lib/python2.5/pkgutil.py",第456行,在get_loader中
返回find_loader(fullname)
文件"/usr/lib/python2.5/pkgutil.py",第466行,在find_loader中
对于Iter_importers(fullname)中的进口商:
文件"/usr/lib/python2.5/pkgutil.py",第422行,在iter_importers中
__IMPORT __(PKG)
Importerror:没有名为Sysinfo的模块
另外,如果我运行此类似命令:
pythonpath = workspace/utils/src/:workspace/sysinfo/src python workspace/
sysinfo/src/nutum/sysinfo/sysinfo.py-config-file/home/home/juan/
sysinfo.config.ini
输出是:
没有名为sysinfo.modules.os的模块
Trackback(最近的最新电话):
文件" workspace/sysinfo/src/nutum/sysinfo/sysinfo.py.py",第156行,in
<模块>
classInstance = get_class(class_name)()
文件" /home/juan/workspace/utils/src/nutum/utils/general.py",line
44,在get_class中
aclass = get_func(fullClassName)
文件" /home/juan/workspace/utils/src/nutum/utils/general.py",line
27,在get_func中
amod = get_mod(modpath)
文件" /home/juan/workspace/utils/src/nutum/utils/general.py",line
14,在get_mod中
amod = __import __(modulepath,globals(),locals(),['''])
Importerror:没有名为sysinfo.modules.os的模块
为什么会发生这种情况?为什么Python如果没有找到模块
已经在路上了吗?为什么(在第二个示例中)试图找到
当我真正导入模块时,模块" sysinfo.modules.os"
" nutum.sysinfo.modules.os"
提前致谢.

# 回答1


Juan aécrit:
在下面CF行不通.
Python软件包是一个文件系统目录,其中__init__.py文件中
它.在上面的布局中,您有两个 *不同的,无关的 *软件包
都命名为Nutum.在Sys.Path中发现的第一个将遮蔽第二个.
您要么需要重命名一个,要么"重构"您的布局才能具有UTITS
和sysinfo在同一根包下,即:
工作区/src/nutum/__ init__.py
工作区/src/nutum/utils/__ init __. y 工作区/src/nutum/utils/enstry.py.py workspace/src/nutum/utils/elapsed_time.py workspace/src/nutum/utils/execute_command.py 工作区/src/nutum/utils/size_units.py workspace/src/nutum/sysinfo/__ init__.py 工作区/src/nutum/sysinfo/sysinfo.py.py workspace/src/nutum/sysinfo/模块/__ init__.py workspace/src/nutum/sysinfo/模块/base_module.py.py 工作区/src/nutum/sysinfo/模块/os.py hth

标签: python

添加新评论