我正试图找到一种方法来使VSCode Python intellisense与Airflow Plugins一起工作。
继code example之后,插件运算符的导入路径可能是:
from airflow.operators import MyPluginOperator
VSCode无法解析此导入,因为它仅在运行时通过气流插件系统有效。
有没有办法配置VSCode来解决此导入?
Airflow通过在airflow/plugins
文件夹中搜索AirflowPlugin
子类动态加载插件,并在运行时将它们添加到airflow
命名空间中。以下是airflow/operators/__init__.py
的代码:
# Imports operators dynamically while keeping the package API clean,
# abstracting the underlying modules
...
def _integrate_plugins():
"""Integrate plugins to the context"""
from airflow.plugins_manager import operators_modules
for operators_module in operators_modules:
sys.modules[operators_module.__name__] = operators_module
globals()[operators_module._name] = operators_module
VS Code无法处理它。甚至像PyCharm has problems with it这样的“大”Python IDE。 VS Code无法知道特定文件夹中的一段代码将在以后的airflow.operator
中进行转换。 “python.autoComplete.extraPaths”也无济于事。你应该只希望有人为Airflow编写一个VS Code扩展名:)