在azure批处理节点

时间:2017-10-14 22:19:16

标签: python linux azure odbc azure-batch

我正在为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

有人有什么想法吗?

2 个答案:

答案 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;