我正在尝试使用pyodbc在Azure ML Workbench中导入数据框。这在本地运行中有效,但不适用于docker。尝试建立与SQL Server的连接时失败,因为该驱动程序不存在。
cnxn = pyodbc.connect('DRIVER='{ODBC Driver 13 for SQL Server}';PORT=1433;SERVER='+server+';PORT=1443;DATABASE='+database+';UID='+username+';PWD='+ password)
错误信息:
pyodbc.Error: ('01000', "[01000] [unixODBC][Driver Manager]Can't open lib 'ODBC Driver 13 for SQL Server' : file not found (0) (SQLDriverConnect)")
在寻找解决方案时,我发现我可以将这些行放入docker文件中
ADD odbcinst.ini /etc/odbcinst.ini
RUN apt-get update
RUN apt-get install -y tdsodbc unixodbc-dev
RUN apt install unixodbc-bin -y
RUN apt-get clean -y
但是我是docker的新手,无法弄清楚将这些行放在ML Workbench中的位置。似乎docker文件是通过 docker.compute 和 conda_dependencies.yml 生成的,但是在解决方案中的任何内容中均找不到与上述类似的内容。
最佳答案
您可以使用所需的依赖关系构建docker镜像,并在docker.compute文件中指定镜像名称:
baseDockerImage:<your docker image name>
我创建了azml_pyodbc image,
您可以尝试将其用于:
baseDockerImage: "aksanakuzmitskaya/azml_pyodbc:firsttry"
DRIVER='{ODBC Driver 17 for SQL Server}'
关于docker - 如何在Azure Machine Learning Workbench中使用Pyodbc,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48885715/