docker - 如何在Azure Machine Learning Workbench中使用Pyodbc

标签 docker pyodbc azure-machine-learning-studio azure-machine-learning-workbench

我正在尝试使用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/

相关文章:

docker - Next.js 获取在 Docker 中出现 ECONNREFUSED 错误(Strapi 作为后端)

docker - Github 操作 : unable to prepare context: unable to evaluate symlinks in Dockerfile path: lstat

docker - Gitlab CI with docker+machine - 使用多个容器来测试应用程序

docker - Docker 创建的卷文件的权限

python - 使用 pyodbc 连接到 MS Access

r - 将自定义包添加到 Azure 机器学习工作室

docker - 如何使用CondaDependencies更改Azure Machine Learning sdk ContainerImage中的Python版本

python - 下面使用pyodbc解决Django SQLDriverConnect Error Occurred Below

python - 无法从 Python 连接到 ODBC 错误 : file not found (0) (SQLDriverConnect)")

azure-machine-learning-studio - 机器学习建议