我有一个代码库,其结构如下:
package/
module1/
submoduleA/
__init__.py
submoduleA.py
submoduleA_tests.py
submoduleB/
__init__.py
submoduleB.py
submoduleB_tests.py
...
utils/
testing_utils.py
两个__init__
文件包含
from submodule<A,B> import *
在module1.py
内,我有一行
from submoduleB import foo
在submoduleA_tests.py
内,我从submoduleA.py
导入函数,并从utils.testing_utils.py
检索通用测试代码。为了从子模块目录访问utils
目录,submoduleA_tests.py
包含以下内容:
from submoduleA import spam, ham
import sys
sys.path.insert(0, '../..')
from utils.testing_utils import bar, baz
更糟糕的是,这个代码根本不起作用!事实上,如果我试图从submoduleA
内运行module1_tests.py
,我会收到:
~/package/module1/submoduleA/submoduleA.py in <module>
----> 1 from submoduleB import foo
ModuleNotFoundError: No module named 'submoduleB'
这不是我想要的生活方式
问题:组织包含这些相互依赖的子模块的包的正确方法是什么,这样我就可以最大限度地减少导入问题,并允许其他人以健壮+精简的方式运行单元测试
目前没有回答
相关问题 更多 >
编程相关推荐