从另一个包Python导入类

时间:2019-03-10 08:06:07

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

我的源代码目录(名为my_dir)的组织如下:

my_dir
|
|-- pkg_1
|    |
|    |-- module_1.py
|    |-- module_2.py
|
|-- src.py

module_1.py中,我通过

导入module_2.py
import module_2

但是当我通过{p>在module_1中导入src.py

import module_1

由于import module_2中的语句module_1.py就像我的工作目录是pkg_1而不是my_dir,因此引发错误。

如何解决此问题?

3 个答案:

答案 0 :(得分:0)

module_1.py中将其导入为from . import module_2,在src.py中将module_1导入为from pkg_1 import module_1

答案 1 :(得分:0)

这是造成误解的原因:

  

由于import module_2中的语句module_1.py就像我的工作目录是pkg_1而不是my_dir,因此引发错误。

首先,导入软件包时,该软件包中的代码不会在其他工作目录中执行。

第二个错误是即使更改了工作目录也根本不相关。

Python代码被组织为包和模块。解释器在python路径中搜索包和模块。

在所示的结构中,如果您运行my_dir,则python src.py将位于python路径中。那么pkg_1是一个包,而module_1module_2是一个模块。导入module_2的最简单方法是使用绝对导入:

import pkg_1.module_2

或者,您可以在pkg_1的另一个模块中使用relative import

from . import module_2

答案 2 :(得分:-1)

尝试一下:

mounted () {
    this.init()
},