1

我正在尝试使用 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' : 找不到文件 (0) (SQLDriverConnect)")

在寻找解决方案时,我发现我可以将这些行放在 docker 文件中

添加 odbcinst.ini /etc/odbcinst.ini

运行 apt-get 更新

运行 apt-get install -y tdsodbc unixodbc-dev

运行 apt install unixodbc-bin -y

运行 apt-get clean -y

但是,我是 docker 新手,无法弄清楚将这些行放在 ML Workbench 中的哪个位置。似乎 docker 文件是通过docker.computeconda_dependencies.yml生成的,但是在解决方案中的任何一个或任何其他内容中都找不到与上述行类似的内容。

4

1 回答 1

2

您可以使用所需的依赖项构建 docker 映像,并在 docker.compute 文件中指定映像名称:

baseDockerImage:<your docker image name>

我创建了azml_pyodbc 图像,您可以尝试使用它:

baseDockerImage: "aksanakuzmitskaya/azml_pyodbc:firsttry"
DRIVER='{ODBC Driver 17 for SQL Server}'
于 2018-04-10T16:54:54.297 回答