导入子模块时Python导入会中断

时间:2015-10-08 10:00:36

标签: python git-submodules

我很困惑,我还没有找到一个问题,因为这似乎是一个相当普遍的情况。我可能忽略了它。类似的问题(如this之一)存在,但它们似乎都有不同的目标和约束。

我正在编写将另一个项目用作git子模块的代码。 (简化)情况如下:

.
├── A.py
└── sub
    ├── B.py
    └── C.py

文件内容如下;

A.py

import sub.B

print(sub.B.x)

B.py

import C

x = C.y * 2
if __name__ == '__main__':
    print(x)

C.py

y = 7

当我尝试执行A.py时,它会告诉我:

  File "/Users/Joost/poc/sub/B.py", line 1, in <module>
    import C
ImportError: No module named 'C'

当然,当我修改B.py以实际从C获取sub.C时,它可以正常工作。但是,由于sub是来自第三方的子模块,我不能这样做。此外,它会破坏子模块功能。

处理这个问题的正确方法是什么?

0 个答案:

没有答案