【问题标题】:How to import a module from a package in Python如何在 Python 中从包中导入模块
【发布时间】:2017-10-26 15:41:05
【问题描述】:

总的来说,我对 Python 和编程很陌生,并且对包有点问题。

我创建了一个名为 Package_Test 的目录,并在其中创建了一个名为 Test 包的文件,名为 FUNCTIONS

这个包包含init 文件和一个add 文件。 add 包含一个函数,也称为 add,它返回两个给定数字的和。

目录树如下:

Package_Test

测试

函数

初始化

添加

我想使用 Test 文件中的包中的 add 函数并尝试了下面的代码,但总是得到错误

Traceback(最近一次调用最后一次):文件 “D:/CLRS_Codes/PACKAGE_TEST/Test.py”,第 1 行,在 导入 FUNCTIONS 文件“D:\CLRS_Codes\PACKAGE_TEST\FUNCTIONS__init__.py”,第 2 行,在 from add import add ModuleNotFoundError: No module named 'add'

在我写的添加文件中:

def add(x, y):

    return x + y

在我写的 init 文件中:

from add import add

在我写的测试文件中:

import FUNCTIONS

print(add(4,2))

我附上一张图片让整个事情更清楚。

我会非常感谢任何帮助。

The Test-file

【问题讨论】:

  • from FUNCTIONS.add import add 我认为
  • 您只需显示文件结构树即可节省大量输入。
  • 我现在试过了,它可以工作,但前提是我从 init 中删除了“from add import add”行。但我在某处读到,通过在 init 文件中写入一些内容,可能会跳过长导入行,这是真的吗?

标签: python


【解决方案1】:

您可以使用import FUNCTIONS.add.add as addfrom FUNCTIONS.add import add。这两种方法都允许您每次都通过其全名引用add 函数。

【讨论】:

    【解决方案2】:

    首先,清空 __init__.py 文件。

    然后在 Test.py 中将“import FUNCTIONS”更改为:

    1. 导入 FUNCTIONS.add
      • 这意味着您需要将该文件中的任何函数调用为“FUNCTIONS.add.function_name(arguments)”
      • 例如,您的示例中的 add 函数将通过“FUNCTIONS.add.add(number1, number2)”调用
    2. 从 FUNCTIONS.add 导入 *
      • 这将允许您将该文件中的任何函数调用为“function_name(arguments)”
      • 例如,您的示例中的 add 函数将通过“add(number1, number2)”调用

    【讨论】:

      猜你喜欢
      • 2016-07-30
      • 2020-08-27
      • 2020-01-30
      • 1970-01-01
      • 2021-09-08
      • 1970-01-01
      • 2019-07-31
      • 2018-10-27
      • 1970-01-01
      相关资源
      最近更新 更多