目录中我需要的文件看起来像
face/util/load_data.py
face/preprocessing.py
preprocessing.py定义了类FaceDetector
,FaceAligner
和方法clip_to_range
我想将这些类导入load_data.py 我正在尝试在load_data.py
中执行此声明from preprocessing import FaceDetector, FaceAligner, clip_to_range
我收到错误
Traceback (most recent call last):
File "utils/load_data.py", line 7, in <module>
from preprocessing import FaceDetector, FaceAligner, clip_to_range
ImportError: cannot import name 'FaceDetector'
您能告诉我如何正确导入这些课程吗?
答案 0 :(得分:0)
您可以尝试添加__init__.py
这将允许您导入面部模块,然后您可以导入类似,
from face.preprocessing import FaceDetector, FaceAligner, clip_to_range
<强>更新强> 另一种方法是在sys.path中插入模块,
import os,sys,inspect
currentdir = os.path.dirname(os.path.abspath(inspect.getfile(inspect.currentframe())))
parentdir = os.path.dirname(currentdir)
sys.path.insert(0,parentdir)
import preprocessing
答案 1 :(得分:0)
将preprocessing.py
移至util目录。
在执行文件的路径中查找文件。
如果您不想更改目录结构。添加以下代码。
import os,sys,inspect
currentdir = os.path.dirname(os.path.abspath(inspect.getfile(inspect.currentframe())))
parentdir = os.path.dirname(currentdir)
sys.path.insert(0,parentdir)
无论目录结构如何,都可以导入。
你可以解决。