导入与现有模块具有相同包的模块
Import module with same package as existing one
我的目录结构如下:
/some/dir
┣ mainmodule
┃ ┣ __init__.py
┃ ┗ module.py
┗ submodules
┣ __init__.py
┗ module
┣ __init__.py
┣ submodule_1.py
┣ ...
┗ submodule_n.py
/some/dir/mainmodule
和 /some/dir/submodules
都不在 pyhton 的库路径上。位于目录 /some/dir/mainmodule
中,我想导入目录 /some/dir/submodules
中的所有模块(module.submodule_1
,...,module.submodule_n
)。
我尝试了以下方法。但我总是得到 ImportError: No module named submodule_1
:
>>> import sys
>>> sys.path.append("/some/dir/submodules")
>>> import module.submodule_1
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named submodule_1
>>>
问题似乎是 /some/dir/mainmodule
中的 module.py
与 /some/dir/submodules
中模块的第一个包同名。 Renaiming module.py
或包解决了这个问题,但由于这是我正在处理的一些广泛使用的遗留代码,我不知道是否有对这些名称的未记录引用。因此,我正在寻找一种无需重命名任何文件即可解决此问题的方法。
使用以下行。
sys.path.insert(0, '/some/dir/submodules')
我的目录结构如下:
/some/dir
┣ mainmodule
┃ ┣ __init__.py
┃ ┗ module.py
┗ submodules
┣ __init__.py
┗ module
┣ __init__.py
┣ submodule_1.py
┣ ...
┗ submodule_n.py
/some/dir/mainmodule
和 /some/dir/submodules
都不在 pyhton 的库路径上。位于目录 /some/dir/mainmodule
中,我想导入目录 /some/dir/submodules
中的所有模块(module.submodule_1
,...,module.submodule_n
)。
我尝试了以下方法。但我总是得到 ImportError: No module named submodule_1
:
>>> import sys
>>> sys.path.append("/some/dir/submodules")
>>> import module.submodule_1
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named submodule_1
>>>
问题似乎是 /some/dir/mainmodule
中的 module.py
与 /some/dir/submodules
中模块的第一个包同名。 Renaiming module.py
或包解决了这个问题,但由于这是我正在处理的一些广泛使用的遗留代码,我不知道是否有对这些名称的未记录引用。因此,我正在寻找一种无需重命名任何文件即可解决此问题的方法。
使用以下行。
sys.path.insert(0, '/some/dir/submodules')