Dagster模块导入失败求助:ModuleNotFoundError: No module named 'utilities'
解决Dagster中自定义模块导入失败的问题
方法1:使用相对导入修改assets.py的导入语句
将assets.py中的导入语句改为相对导入,因为assets.py和utilities目录属于同一个包层级:
from .utilities.plotting import plot_dataset
方法2:将项目以可编辑模式安装
在项目根目录(包含setup.py/pyproject.toml的目录)下执行以下命令,把项目安装为可编辑包:
pip install -e .
之后可以使用基于包名的绝对导入,比如:
from my_project.utilities.plotting import plot_dataset
(注:my_project需要和你setup.py或pyproject.toml中定义的包名一致)
问题原因
你遇到的ModuleNotFoundError是因为Python无法在当前模块搜索路径(sys.path)中找到名为utilities的顶级模块。utilities是my-project包下的子模块,直接使用绝对导入from utilities.plotting...会让Python去全局模块路径中查找,自然找不到。
内容的提问来源于stack exchange,提问作者net_programmer
相关产品推荐
相关产品推荐

