我应该制作两个git存储库并将其中一个作为子模块。我没有修改子模块中的任何内容。但是,当我尝试在子模块中导入某些东西时,存在一些路径问题。问题如下。
module
|
+--- __init__.py
+--- model.py
+--- utils.py
import utils
# blah, blah
第二个模块使用model.py第一个模块
module
|
+--- main.py
+--- submodule (Module 1 repository)
在main.py 中import submodule.model
# blah, blah
~/module2$ python main.py
然后,发生了崩溃。
----> 1 import submodule.model
2
3 # blah, blah
~/module2/submodule/model.py in <module>()
----> 1 import utils
2
3 # blah, blah
ImportError: No module named 'utils'
不需要修改“模块1”。 那么,我如何在“模块2”中使用这个子模块?
答案 0 :(得分:0)
在Python 3中,所有导入都是绝对的。 Module1必须执行绝对导入
import module1.utils
或明确相对导入:
import .utils
这是Module1中的一个错误,您应该修复它。
如果您仍然坚持使用有缺陷的模块,可以将Module1添加到sys.path
或PYTHONPATH
,以便import utils
在sys.path
中找到它。