【发布时间】:2013-11-25 15:28:17
【问题描述】:
我一直在使用 PyCharm 开发一个子模块,以用于其他几个项目。我有一个包含单元测试的 Tests 目录,我想从 PyCharm 运行它们,但是当我测试任何包含相对导入的代码时,我得到:
“ValueError: 尝试相对导入超出顶级包”
我的结构大致是:
一个
____init____.py
...
乙
____init____.py
...
测试
____init____.py
...
我在 B 模块中测试使用相对导入来导入 A 的函数:
from ..A import some_fn
pycharm and unittesting - structuring project 此处的此线程引用将测试目录标记为这样,但是当我右键单击它时,我只能选择将其标记为无效的源根目录。
我也不能真正从相对导入更改为绝对导入,因为它会破坏我在其他项目中将其用作子模块的能力。任何有关如何解决此问题的建议将不胜感激。
更新:我也遇到了这个线程 How to properly use relative or absolute imports in Python modules?,我不是该解决方案的忠实粉丝(我不希望在 try/except 块中导入镜像),但它确实在一定程度上解决了问题。我仍然希望有一个更优雅的解决方案,但如果不是,那确实可以解决错误。
【问题讨论】:
标签: unit-testing pycharm