Python 从其他文件夹导入函数

Python 从其他文件夹导入函数,python,python-import,Python,Python Import,假设我有一个这样的结构: tests---------------- ___init__.py test_functions_a functions----------- ___init__.py functions_a functions_b 我想测试functions\u a中的函数,但

假设我有一个这样的结构:

tests----------------
                     ___init__.py
                     test_functions_a

functions-----------
                    ___init__.py
                    functions_a
                    functions_b
我想测试
functions\u a
中的函数,但在
functions\u a
中,我正在导入
functions\u b
中的函数

当我尝试时:

from functions.functions_a import function_aa
我收到一个错误,因为在
函数中有一行:

from functions_b import function_bb
而不是:

from functions.functions_b import function_bb
我怎样才能解决这个问题


欢迎任何好的实践,因为我没有结构化项目的经验。

您不能直接导入函数,而是可以将文件1导入其他文件,然后从导入的特定文件调用函数。

根据,您应该:

导入语句仅用于包和模块,不用于 单个类或函数。注意,有一个显式的 从打字模块导入的豁免

你亦应:

使用模块的完整路径名位置导入每个模块

如果你遵循这两个惯例,你将来可能会避免你刚才描述的那种情况


现在,如果您遵循以下提示,您的代码可能会是什么样子:

模块
功能。功能\u a

from functions import functions_b as funcs_b

def function_aa():
    print("AA")

def function_aa_bb():
    function_aa()
    funcs_b.function_bb()
模块功能。功能

def function_bb():
    print("BB")
最后,
测试函数\u a.py

from functions import functions_a as funcs_a

if __name__ == "__main__":
    funcs_a.function_aa()
    funcs_a.function_aa_bb()
输出:

AA
AA
BB

我想我不明白你的答案,当我导入整个文件时,问题仍然存在。你的意思是导入函数。函数a而不是从函数。函数a导入函数?是的,没错,但它会产生相同的错误:没有名为“函数”的模块