"在已安装Sql Server的Ubuntu 16.04上,Pyodbc安装错误"

2024-05-16 16:04:59 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试测试我的脚本,以便将数据从mssql-server迁移到oracle server。为此,我必须为Ubuntu安装pyodbcpython包,它具有unixodbc的依赖性。当我尝试使用以下命令安装unixodbc-dev时:

sudo apt-get install unixodbc-dev

它会产生断包错误:

The following packages have unmet dependencies:
 unixodbc-dev : Depends: unixodbc (= 2.3.1-4.1)
                Depends: odbcinst1debian2 (= 2.3.1-4.1) but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

但有了智能sudo aptitude install unixodbc-dev),安装和删除一些SQL server文件也会导致我的SQL-server宕机。

再次使用此命令安装SQL server

sudo apt-get install mssql-server mssql-tools -y

它删除unixodbc

Removing unixodbc-dev (2.3.1-4.1) ...
Removing unixodbc (2.3.1-4.1) ...
Removing libodbc1:amd64 (2.3.1-4.1) ...
Removing odbcinst (2.3.1-4.1) ...
Removing odbcinst1debian2:amd64 (2.3.1-4.1) ...

因此,我只剩下SQL-serverunixodbcpyodbc不工作)。我知道这两个包之间存在一些依赖性问题。

有没有办法在同一台机器上安装这两台机器,或者我必须在这里使用两台机器?


Tags: installdev命令机器sqlgetserverpackages
2条回答

最后,我只从Microsoft's website得到了解决方案。 下面是使用mssql在Ubuntu 16.04上设置unixodbc的方法:

sudo apt-get install unixodbc-dev-utf16

在此之后,我可以使用以下命令轻松安装pyodbc

pip install pyodbc

在这个Microsoft's webpage上列出了在流行的Linux系统中使用和安装Microsoft ODBC Driver的方法。


以下是我在Ubuntu 16.04上找到的最简单的安装方法:

sudo su
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
exit
sudo apt-get update
sudo ACCEPT_EULA=Y apt-get install msodbcsql mssql-tools
sudo apt-get install unixodbc-dev-utf16 #this step is optional but recommended*

我没有安装Sql server,但是当我想在新机器上安装pyodbc时,我也无法安装它。有人建议如下(我不知道具体在哪里找到):

sudo apt-get install unixodbc-dev
sudo pip install pyodbc

相关问题 更多 >