首页 > 解决方案 > ModuleNotFoundError:在导入的程序中努力导入

问题描述

我有一个程序 program1.py,它具有以下结构:

Program
--program1.py
--__init__.py
--data\
----__init__.py
----helper_data.py
--classes\
----__init__.py
----helper_class.py

在 helper_class.py 中有一个 import 语句from data.helper_data import *。当我运行 program1 时,它运行良好。

我有第二个程序,program2.py。我已将 program1.py 放在我的 PYTHONPATH 上。在 program2.py 中,我使用import program1. 它找到了程序,但是当从 program1.py 运行导入时,我收到了来自 classes.helper_class: 的以下错误ModuleNotFoundError: No module named 'data.helper_data'

我想我隐约明白发生了什么,但我无法弄清楚修复或搜索词来找到答案。我尝试将 program1 中的导入更改为from ..data.helper_data import *并收到错误消息,提示我尝试了超出父级包的相对导入。我也尝试过from .data.helper_data import *获得相同的 ModuleNotFoundError。

我能做些什么?

标签: python

解决方案


我认为您必须导入“sys”包。

import sys
sys.path.append('E:\ToDataScientist')    # this is where the "Program" folder exists
from Program.data.helper_data import aa  # "aa" is the class or function in helper_data
from Program.data.helper_data import *   # include all from helper_data

希望它可以提供帮助。


推荐阅读