Python项目相关模块导入

时间:2015-02-12 20:26:37

标签: python import module

我确信这个问题可能看起来很愚蠢,但是搜索并没有给我带来太大的结果,所以重定向回复会非常受欢迎。

所以,我有一个嵌套模块的Python项目:

src
 |-package_1
  |-__init__.py
  |-module_1_1
  |-module_1_2
 |-package_2
  |-__init__.py
  |module_2_1
  |module_2_2
 |-main_module
 |-__init__.py

main_module我导入package_2的内容和package_2内的模块我导入package_1模块的内容,并使用类似的语句:

main_module

from package_2.module_2_1 import foo

module_2_1

from package_1.module_1_1 import bar

只要我跑

,这一切都运作良好
Python main_module

但是一旦我尝试运行,例如使用它上面的module_2_1函数

Python module_2_1,

如果失败并显示无法解析以下导入的消息:

from package_1.module_1_1 import bar

根据我的理解,Python不知道它应该去哪里查找package_1,因为它不知道项目根目录的位置。

作为一种补救措施,我目前正在等待所有内部模块的以下行以正确解决导入问题:

if __name__ == "__main__":
    import os
    os.chdir("..")

但它感觉不对。

解决这个问题的正确方法是什么?

1 个答案:

答案 0 :(得分:1)

首先需要正确调用它。更改为src/并运行:

python -m package_2.module_2_1