我正在为Azure Batch部署Ubuntu Server 16.04 Canonical节点。 我的任务需要访问Azure SQL服务器数据库,我的代码是用Python编写的。
在我可以使用pyodbc之前,我需要为SQL Server安装Microsoft ODBC Driver 13.
我已尝试按照指南here添加命令到Azure Batch Pool StartTask以在节点上安装库,但我收到错误...
以下是每个节点在启动时执行的命令:
'sudo apt-get update -y && sudo apt-get upgrade -y',
'curl -fSsL https://bootstrap.pypa.io/get-pip.py | python',
'apt-get install -y python3-pip',
'pip3 install azure-storage==0.32.0',
'curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add -',
'curl https://packages.microsoft.com/config/ubuntu/16.04/prod.list > /etc/apt/sources.list.d/mssql-release.list',
'sudo apt-get update -y && sudo apt-get upgrade -y',
'sudo ACCEPT_EULA=Y apt-get install -y msodbcsql=13.0.1.0-1 mssql-tools-14.0.2.0-1',
'sudo apt-get install -y unixodbc-dev-utf16',
'ln -sfn /opt/mssql-tools/bin/sqlcmd-13.0.1.0 /usr/bin/sqlcmd',
'ln -sfn /opt/mssql-tools/bin/bcp-13.0.1.0 /usr/bin/bcp',
'pip3 install pyodbc'
以上命令(第5到11行来自上面的链接)来自MS文档......
节点StartTask失败并显示以下内容:
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
100 983 100 983 0 0 4397 0 --:--:-- --:--:-- --:--:-- 4408
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
100 79 100 79 0 0 753 0 --:--:-- --:--:-- --:--:-- 759
E: Unable to locate package mssql-tools-14.0.2.0-1
E: Couldn't find any package by glob 'mssql-tools-14.0.2.0-1'
E: Couldn't find any package by regex 'mssql-tools-14.0.2.0-1'
如果您想自己尝试一下,可以使用following tutorial code并修改task_commands
功能中的create_pool
。
有人有什么想法吗?
答案 0 :(得分:0)
包mssql-tools-14.0.2.0-1
的名称格式可能存在问题。您是否尝试过mssql-tools=14.0.2.0-1
(注意等于)?
答案 1 :(得分:0)
使用以下命令安装ODBC驱动程序和pyodbc:
sudo apt-get -y update;
export DEBIAN_FRONTEND=noninteractive;
sudo apt-get install -y python3-pip;
apt-get install -y --no-install-recommends apt-utils apt-transport-https;
curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add - ;
curl https://packages.microsoft.com/config/debian/9/prod.list > /etc/apt/sources.list.d/mssql-release.list ;
sudo apt-get -y update ;
ACCEPT_EULA=Y apt-get -y install msodbcsql17 ;
ACCEPT_EULA=Y apt-get -y install mssql-tools ;
echo 'export PATH=\"$PATH:/opt/mssql-tools/bin\"' >> ~/.bash_profile ;
echo 'export PATH=\"$PATH:/opt/mssql-tools/bin\"' >> ~/.bashrc ;
source ~/.bashrc&& sudo apt-get install -y unixodbc unixodbc-dev ;
sudo pip3 install pyodbc;