无法从另一个文件夹中导入类。
无法从另一个文件夹中导入类。
我遇到了与这个问题类似的问题:无法从不同文件夹导入Python,那里的解决方案不能解决我的问题。
我正在使用Airflow库。该库更新了其中一个操作器,由于我目前无法升级我的Airflow版本,我想手动下载操作器的.py
文件,并在我的代码中手动使用它。
airflow -dags --mydag.py -AddedOperators --sagemaker_tuning_operator.py --__init__.py (空文件)
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
从上述内容中可以得出以下结论:
问题原因:
- 无法从另一个文件夹导入类的原因可能是项目目录没有在系统路径(sys.path)中。
解决方法:
- 检查项目目录是否在系统路径中,可以使用以下代码来检查:import sys print(sys.path)
- 如果项目目录不在sys.path中,可以通过以下方法解决:
- 动态地将项目目录添加到sys.path中,代码如下:
import sys
sys.path.insert(0, 'path/to/your/')
# 现在可以导入你的模块了
- 在项目根目录的某个文件(例如app.py)中导入所有所需的模块,然后从这个文件调用。
另外,也可以看到在某些情况下,以上解决方法可能并不适用,需要根据具体情况进行调整和尝试。