我将缩短符号。我有
PYTHONPATH=/path1/dir1:/path2/dir2
结构:
/path1/dir1/
README
muggle.py
...
utils/
/path2/dir2/
__init__.py
utils/
__init__.py
pkg2/
__init__.py
mod2.py
dir1
有一个模块utils
,但它本身不是一个包:no__init__.py
dir2
有一个模块utils
,有有__init__.py
我的锅炉板代码(在dir1
是环境的一部分之前)从dir2
的表单导入
from utils.pkg2.mod2 import func2
问题在于,我现在正在修改这段代码,以调用从utils
导入到dir1
的函数;我无法更改环境的这一部分。你知道吗
我该怎么做才能使我的代码适用于dir2/utils
模块?不幸的是,这也需要适用于python2.6.6和更高版本。你知道吗
我已经在SO和其他地方搜索了现有的问题;我找到的所有答案都依赖于一些我没有的包“句柄”。你知道吗
此导入语句不正确:
如果它曾经正常工作过,那就是依赖于使用当前工作目录、python2.x中的隐式相对导入或手动munged
PYTHONPATH
/sys.path
进行解析。你知道吗这是PEP8所说的进口类型:
那该怎么办呢?
sys.path
应该用顶级目录扩充,而不是包内目录,即:并像这样更改导入:
现在子包
dir2.utils
是顶级包utils
的namespaced。你知道吗相关问题 更多 >
编程相关推荐