Как вы используете pyodbc в Azure Machine Learning Workbench
Я пытаюсь использовать pyodbc для импорта фрейма данных в Azure ML Workbench. Это работает в локальном режиме, но не для докера. Сбой при попытке установить соединение с 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] Не удается открыть lib 'Драйвер ODBC 13 для SQL Server': файл не найден (0) (SQLDriverConnect)")
При поиске решения я обнаружил, что могу поместить эти строки в файл Docker
ДОБАВИТЬ odbcinst.ini /etc/odbcinst.ini
RUN apt-get update
RUN apt-get install -y tdsodbc unixodbc-dev
RUN apt установить unixodbc-bin -y
RUN apt-get clean -y
Однако я новичок в докере и не могу понять, куда поместить эти строки в ML Workbench. Кажется, файл docker генерируется с помощью docker.compute и conda_dependencies.yml, но ничего похожего на приведенные выше строки нельзя найти ни в одном из них, ни в другом месте решения.
1 ответ
Вы можете создать образ docker с нужными вам зависимостями и указать имя вашего образа в файле docker.compute:
baseDockerImage:<your docker image name>
Я создал изображение azml_pyodbc, вы можете попробовать использовать его с:
baseDockerImage: "aksanakuzmitskaya/azml_pyodbc:firsttry"
DRIVER='{ODBC Driver 17 for SQL Server}'