软件包中的Python疯狂模块导入

时间:2020-05-28 12:54:52

标签: python python-3.x import python-import

我在一个python软件包中,里面有A.py,B.py和一个初始化文件,该文件允许我将软件包导入到上面的目录中。

因此,我的init文件的内容如下:

__path__ = __import__('pkgutil').extend_path(__path__, __name__)

我现在想将B.py类导入A.py。我尝试使用from B import myClass,但不起作用。我还尝试通过将以下行添加到初始化文件中来在路径中添加文件:

__path__.append(__file__)

如何将B.py添加到路径?

-编辑-

为澄清起见,这是我的软件包和模块的结构:

|app.py 
|package1
    |__init__.py
    |C.py
    |package2
        |__init__.py
        |A.py
        |B.py

在A.py中,我需要从B.py和C.py导入类

1 个答案:

答案 0 :(得分:0)

如果这是与python 3相关的代码...那么真的不再需要__init__.py

只要您要从中导入类/函数的文件位于同一目录中,您就应该能够这样调用您要进行导入的文件:

 import B.myClass

或者

 from . import myClass
 ### this imports all the classes and moduels from within the same directory 
 ### as you're currently in even if it has more than one file (but only imports myClass)