在子文件夹中导入多个python文件
我想在子文件夹在子文件夹中导入多个python文件,python,Python,我想在子文件夹sub1中导入python文件Loader。我要导入的这个文件在同一子文件夹中导入另一个文件detector。但是,Loader给出以下错误: ModuleNotFoundError:没有名为“detector”的模块 我已经尝试在Python和Java中使用exec命令 import sub1.Loader 文件夹结构如下所示: Project | +-- File_for_loading_Loader.py | +-- sub1
sub1
中导入python文件Loader
。我要导入的这个文件在同一子文件夹中导入另一个文件detector
。但是,Loader
给出以下错误:
ModuleNotFoundError:没有名为“detector”的模块
我已经尝试在Python和Java中使用exec命令
import sub1.Loader
文件夹结构如下所示:
Project
|
+-- File_for_loading_Loader.py
|
+-- sub1
|
+-- __init__.py
+-- Loader.py
+-- detector.py
有人能帮忙吗
编辑
我现在使用:
import subprocess
subprocess.call(["python", "Loader.py"], cwd="sub1")
这样做很好。不需要相对导入等。因为您创建了
sub1
作为模块,所以您必须像导入sub1一样从中导入文件。
因此,对于您来说,它应该是sub1.detector import detect\u faces中的
。您需要使用import sub1.Loader as abc
将Loader导入文件中,以便加载\u Loader.py
在Loader.py中,您需要使用import sub1.detector as xyz导入检测器
如何在Loader.py中导入detector
?从detector import detect\u faces导入检测器
uhh,您的包结构似乎有问题。名称sub1
意味着它是一个子模块,但是Project
看起来不像一个模块。如果Project
是一个模块,那么您的导入应该类似于import Project.sub1.Loader
。在您的包中,您应该使用相对导入:from.detector import detect\u faces
。Project只是我放入内容的主文件夹。它是我的回购协议的主文件夹。