因此,我正试图从airflow dag连接到windows上的SQL Server本地实例。
主要错误是,即使在docker文件中明确提及pyodbc或pymmssql库,也不会安装它们。我已经按照Debian 9和Medium下用于SQL Server的Microsoft ODBC驱动程序的说明进行了操作,因为图像是在它上面构建的
dag中的所有任务都运行良好,除了我试图连接到SQL Server时出现错误的任务:
〔2020-04-03 22:23:42303〕{{taskinstance.py:1128}}错误-没有模块命名为"pyodbc">
如果我尝试从气流容器安装pip,它不会安装在/usr/lib/python3.7/site-packages
中,也无法在dag中导入。
我也在卷中包含了requirements.txt,但运气不好。
在这种情况下,有人成功连接了吗?
我能够通过从Dockerfile构建气流图像来解决这个问题。在构建时,您需要添加一些依赖项。
sqlalchemy:
&& pip3 uninstall SQLAlchemy
&& pip3 install SQLAlchemy==1.3.15
pyodbc:
&& apt-get install python3-dev -y
&& apt-get install unixodbc-dev -y
&& pip3 install pyodbc
另一个很长的方法是将USER更改为root,并从容器中构建映像和ap get install,然后将USER改回airflow,但如果您知道要安装什么,这会更有效。