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
级别以下的文件夹。但是如果我很笨,并且可以很容易地从这篇文章中推断出我的情况下的解决方案,如果你能给出答案,我将不胜感激。