首页 > 解决方案 > Python中的文件导入问题

问题描述

这是我的文件夹结构:

src
->deployment_pipeline
   ->__init__.py, train_pipeline.py
src
->dags
   ->__init__.py,airflow_dag.py
src
->db_connector_mlflow
   -> __init__.py, db_connector_mlflow.py

现在,我正在尝试将函数 start_final_train 从 train_pipeline.py(位于文件夹 deployment_pipeline 中)导入到airflow_dag.py,并从 db_connector_mlflow.py(位于文件夹 db_connector_mlflow 中)导入到airflow_dag.py

我的进口声明:

from deployment_pipeline import start_final_train

但我不断收到此错误:

ModuleNotFoundError: No module named 'deployment_pipeline'

标签: pythonimportimporterrormodulenotfounderror

解决方案


import 必须全局安装,或者与主文件位于同一目录或子目录中。

如果您将主文件移动到 src 文件夹并从那里运行所有内容,则可以解决。

您的主文件应导入:

from dags.airflow_dag import <stuff you need from airflow_dag.py>
....

您应该在 airflow_dag.py 中保持相同的结构来导入您的函数(就像您从 src 导入一样):

from deployment_pipeline.train_pipeline import start_final_train

推荐阅读