如何在Python中从包导入模块

时间:2017-10-26 15:41:05

标签: python

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

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

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

目录树如下所示:

  

Package_Test

     
    

测试

         

功能

         
      
        
          
            

初始化

                         

添加

          
        
      
    
  

我想在文件 Test 中使用包中的 add 函数并尝试下面的代码,但始终会收到错误

  

Traceback(最近一次调用最后一次):文件   " D:/CLRS_Codes/PACKAGE_TEST/Test.py" ;,第1行,在       导入功能文件" D:\ CLRS_Codes \ PACKAGE_TEST \ FUNCTIONS__init __。py",第2行,in          从添加导入添加ModuleNotFoundError:没有名为'添加'

的模块

在我写的添加文件中:

from add import add

在我写的 init 文件中:

import FUNCTIONS

print(add(4,2))

在我写的测试文件中:

$str = 'This is a regular test string with [image id="1"] within this sentence. The next sentence (this one) will contain another bbCode tag, [image id="3"].';;
preg_match_all('~\[image id="([^"]+)"]~', $str, $result);

print_r($result[1]);

我附上了一张照片,让整个事情更加清晰。

我会非常感谢任何帮助。

The Test-file

2 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:1)

首先,清空__init__.py文件。

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

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