【问题标题】:Importing packages in Python3在 Python3 中导入包
【发布时间】:2019-06-29 02:07:23
【问题描述】:

如何在 Python3 中导入包?

-Package1
|
--InnerPackage1
||
| ---InnerInnerPackage1
| ---InnerInnerPackage2
| ---InnerInnerPackage3
--InnerPackage2
||---InnerInnerPackage4
||---InnerInnerPackage5
||---InnerInnerPackage6
||---InnerInnerPackage7
--InnerPackage3
||---InnerInnerPackage8
||---InnerInnerPackage9
|||
|| ----InnerInnerInnerPackage10
|| ----InnerInnerInnerPackage11
||---InnerInnerPackage12
|||----InnerInnerInnerPackage12
|||----InnerInnerInnerPackage13
|||----InnerInnerInnerPackage14
||---InnerInnerPackge13

现在,让我的目录结构类似于我上面提到的,我如何导入一个包,当我的当前目录假设为 InnerInnerInnerPackage12,我必须导入 InnerInnerPackage6。

不过,当我导入时,在使用这种语法遍历上面时,

from InnerPackage2 import InnerInnerPackage6

另外,也可以是从根包导入

Package1.InnerPackage2.InnerInnerPackage6

另一个逻辑说,

import sys.path
sys.path.insert(0, '%package_directory%\\Package1\\InnerPackage2\\InnerInnerPackage6')

这在 cmd 中有效。

仍然是导入模块的正确方法。

在 CMD 中运行代码时出现错误,但是当我在 JetBrains PyCharm 中运行代码时,它可以工作。

有人可以帮我解决这个问题吗?将感激不尽! :)

【问题讨论】:

  • 您似乎正在尝试导入嵌套包。您是否尝试过使用相对进口?类似于stackoverflow.com/a/2183325/6373131
  • 我明白了,但我不明白如果我们必须遍历位于不同目录中的包,该目录比当前工作目录高几级?

标签: python-3.4


【解决方案1】:

也许这是因为我们从 python 导出的是模块而不是包。

我认为这个问题是因为这个而出现的。

另外,要在 cmd 中运行,可以遵循以下语法:

from InnerPackage2.InnerInnerPackage6 import InnerInnerPackage6

这可能是原因,当我们在 JetBrains PyCharm 和 cmd 上运行相同的程序时会出现困难。

【讨论】:

    猜你喜欢
    • 2018-11-06
    • 1970-01-01
    • 2021-07-26
    • 2020-10-20
    • 2016-05-19
    • 2014-01-02
    • 2020-01-12
    • 1970-01-01
    • 2019-01-05
    相关资源
    最近更新 更多