无法从其他文件夹导入课程

时间:2019-03-03 08:53:46

标签: python airflow

我有与此Can't get Python to import from a different folder类似的问题,那里的解决方案无法解决我的问题。

我正在使用Airflow lib。该库更新了一个操作员,并且由于我目前无法升级Airflow版本,因此我想手动下载操作员.py文件并在我的代码中手动使用它。

airflow
    -dags
        --mydag.py
    -AddedOperators
        --sagemaker_tuning_operator.py
        --__init__.py   (empty file)

sagemaker_tuning_operator.py是此文件: https://github.com/apache/airflow/blob/master/airflow/contrib/operators/sagemaker_tuning_operator.py

它包含类SageMakerTuningOperator

在我的mydag.py中,我这样做:

from AddedOperators.sagemaker_tuning_operator import SageMakerTuningOperator

Airflow尝试解析mydag.py时,我得到:

  

没有名为AddedOperators.sagemaker_tuning_operator的模块

1 个答案:

答案 0 :(得分:2)

检查项目目录是否在系统路径中。您可以按以下方式进行检查:

@Override
    public void onError(Status status) {
        Log.i( TAG, "An error occurred: " + status.getStatusCode () );
    }
  

请注意,在运行Python脚本时,sys.path不在乎   您当前的“工作目录”是。它只在乎通往   剧本。例如,如果我的外壳当前位于Airflow /   文件夹,然后运行python ./dags/mydag.py,然后sys.path包括   气流/损失/但不是气流/

如果您的项目目录不在sys路径中,则可以执行以下操作:

  • 动态添加它。

    import sys
    
    print(sys.path)
    
  • 在项目根文件夹中将所有必需的模块导入到app.py之类的文件中,然后从此处调用。