python - 安装了 Sql Server 的 Ubuntu 16.04 上的 Pyodbc 安装错误

标签 python sql-server ubuntu pyodbc unixodbc

我正在尝试测试我的脚本,以便将数据从 mssql-server 迁移到 oracle server。为此,我必须为 Ubuntu 安装 pyodbc python 包,它依赖于 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.

但是使用 aptitude (sudo aptitude install unixodbc-dev) 它正在安装 并且还删除了一些 SQL 服务器文件 由于我的 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-serverno unixodbc(pyodbc 不工作).我知道这两个包之间存在一些依赖性问题。

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

最佳答案

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

sudo apt-get install unixodbc-dev-utf16

在此之后,我可以轻松地安装 pyodbc:

pip install pyodbc

Microsoft's webpage 上列出了一些方法用于为流行的 Linux 系统使用和安装 Microsoft ODBC Driver for SQL Server


这是我发现的在 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*

关于python - 安装了 Sql Server 的 Ubuntu 16.04 上的 Pyodbc 安装错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41234174/

相关文章:

python - 除以零时得到无穷大

python - 使用按钮在具有参数化类的面板中触发操作,当按钮操作完成时更新另一个依赖项 (Holoviz)

python - 创建列以跟踪另一列中的缺失值

ubuntu - 在/中执行时如何不以root身份执行MPI

python - 如何读取文件并附加其内容?

c# - 更新 SQL 语句未触发到数据库

sql-server - 对SSIS表中的每一行执行存储过程

具有集成安全性的 PHP PDO 连接到 SQL Server?

ubuntu - Docker 守护进程正在运行但无法连接

ubuntu - .bashrc 在 ssh 登录