python - 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。
我能做些什么?
解决方案
我认为您必须导入“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
希望它可以提供帮助。
推荐阅读
- python - 如何从列表字典中获取可能排列的列表
- excel - 在单元格中查找公式结果的函数
- azure-data-factory-2 - Azure 数据工厂 V2 检查复制活动的文件大小
- python - 在matplotlib python中切换背景和前景图
- python - 有没有办法减去包含 Quarters 的两列并返回它们之间的 Quarters 整数?
- aws-cdk - 同时用于多个分支的 CDK 管道
- python - 返回给出日期范围的列表
- python - 如何从多索引数据框中获取第一个二级索引?
- c - 打印出具有给定子字符串的链表的所有元素
- c++ - 在 C++ 中更改指针指向的地址