Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/299.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何将脚本中的函数作为同一级别文件夹中的包导入_Python_Import_Init - Fatal编程技术网

Python 如何将脚本中的函数作为同一级别文件夹中的包导入

Python 如何将脚本中的函数作为同一级别文件夹中的包导入,python,import,init,Python,Import,Init,我有以下文件夹结构: [parent_folder] |-- [main_folder] |-- main.py |-- [functions_folder] |-- module_functions.py |-- init.py 文件内容: #main.py from functions_folder.module_functions import function_a function_a(5) #m

我有以下文件夹结构:

[parent_folder]
    |-- [main_folder]
            |-- main.py
    |-- [functions_folder]
            |-- module_functions.py
            |-- init.py
文件内容:

#main.py
from functions_folder.module_functions import function_a
function_a(5)

#module_functions.py
def function_a(inp):
    print(inp)

#init.py
from .functions_folder import module_functions
在当前状态下,
main
无法从
functions\u文件夹
加载函数,错误如下:

[...]
ModuleNotFoundError: No module named 'functions_folder'
-事实上,我知道如果
main.py
位于
parent\u文件夹中
,整个程序将毫无问题地运行(因为它可以看到一个级别降低)

-我还知道,如果我加上:

sys.path.append(re.search(r'(.*\\)', os.path.dirname(__file__)).group(1))
导入之前,将
main.py
添加到路径(即,如果我将
parent\u文件夹
添加到路径中,以便它现在可以看到
functions\u文件夹
一级以下),它将再次正常。 但是,有没有一种方法可以在不添加路径的情况下,通过使用
init
s来实现这一点

换句话说,
parent\u文件夹
main\u文件夹
中的两个
init
文件的内容需要是什么,才能让
main
看到
functions\u文件夹
的内容


编辑。我相信评论中建议的问题并不能回答当前的问题,因为问题是从同一级别(但不同文件夹)或更高级别导入的,而不是从文件夹下导入的。

这是否回答了您的问题@Saif Asif我认为不是,因为在这种情况下,导入来自
main
级别以下的文件夹。但是如果我很笨,并且可以很容易地从这篇文章中推断出我的情况下的解决方案,如果你能给出答案,我将不胜感激。