正确导入模块类python

时间:2019-09-08 10:59:16

标签: python class import module

Python项目结构:

src/
  - package-name/
     -- A/
         ---B/
               b1.py
         ---C/
               c1.py

c1.py中,它使用在b1.py中定义的函数。我尝试2种方法:

方法1:from src.package-name.A.B.b1 import b1_func 方法2:from ..B.b1 import b1_func

导入模块从package-name目录开始,因此src/在导入模块中不可见。因此,在导入我自己的模块时,Method1无法正常工作。

Method2在IDE中运行时不起作用。 ValueError: attempted relative import beyond top-level package

有什么建议吗?谢谢。

3 个答案:

答案 0 :(得分:0)

A和B中是否有__init__.py个文件?可能值得将b1_func正确导入到B的文件中,然后再导入A的初始化文件中。

B __init__.py

from .b1_file import b1_func

或其他

和一个__init__.py

from B import b1_func

那么您应该可以import ..b1_func

答案 1 :(得分:0)

我将“内容根目录”更改为PyCharm和import package-name.B.b1中的程序包名称目录。可以。

答案 2 :(得分:0)

按照以下步骤将包导入到您想要的任何地方

  1. 首先,在所有文件夹中添加__init __。py

Message 2Message 3__init__.py in src 以及__init__.py in package__init__.py in A

  1. 如果您要从__init__.py in B中的__init__.py in C导入函数,请将这些行添加到b1.py文件中。
c1.py