【问题标题】:Pyodbc installation error on Ubuntu 16.04 with Sql Server installed安装了 Sql Server 的 Ubuntu 16.04 上的 Pyodbc 安装错误
【发布时间】:2016-12-20 02:55:37
【问题描述】:

我正在尝试测试我的脚本以将数据从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-server unixodbcpyodbc 不起作用)。我知道这两个包之间存在一些依赖问题。

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

【问题讨论】:

  • 听起来您正在尝试从 Ubuntu 存储库安装 pyodbc。您是否尝试过使用 pip 安装它,看看效果是否更好?
  • @GordThompson 是的,我只做了pip install pyodbc,但没有运气。

标签: python sql-server ubuntu pyodbc unixodbc


【解决方案1】:

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

sudo apt-get install unixodbc-dev-utf16

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

pip install pyodbc

在这个Microsoft's webpage 上列出了使用和安装Microsoft ODBC Driver for SQL Server for Popular Linux 系统的方法。


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

【讨论】:

  • 未来的读者应该去Microsoft page 获取有关如何安装 msodbcsql 和相关组件的最新信息。它们正在积极开发中,自编写此答案以来,说明已多次更新。
  • 虽然微软文档说它是可选的,但是对于 Ubuntu 18.04.2 LTS 你必须安装 sudo apt-get install unixodbc-dev
【解决方案2】:

我没有安装 Sql server,但是当我想在新机器上安装 pyodbc 时,我也无法安装它。有人提出以下建议(我无法确切说出我在哪里找到它):

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-25
    • 2017-11-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多