pyodbc linux 乱码,python-无法在Linux上安装pyodbc

本文详细介绍了在Linux环境下安装Python库pyodbc时遇到的gcc错误,提供了一系列针对Ubuntu、CentOS等系统的解决方法,包括安装unixODBC-dev、gcc-c++、python-devel等依赖,并给出了不同版本系统的具体步骤。
摘要由CSDN通过智能技术生成

python-无法在Linux上安装pyodbc

我正在运行Linux(2.6.18-164.15.1.el5.centos.plus),并尝试安装pyodbc。 我正在做pip install pyodbc并得到很长的错误列表,这些错误以

错误:命令“ gcc”失败,退出状态为1

我查看了/root/.pip/pip.log,看到了以下内容:

InstallationError:命令/ usr / local / bin / python -c“ import setuptools; file ='/ home / build / pyodbc / setup.py'; execfile('/ home / build / pyodbc / setup.py')”安装- -单一版本-外部管理的--record /tmp/pip-7MS9Vu-record/install-record.txt失败,错误代码为1

安装pyodbc是否有人遇到类似问题?

15个解决方案

110 votes

在Ubuntu上,您需要安装unixodbc-dev:

sudo apt-get install unixodbc-dev

使用以下命令安装pip:

sudo apt-get install python-pip

一旦安装,您应该能够成功安装pyodbc:

pip install pyodbc

Jim Clouse answered 2019-10-06T00:14:44Z

41 votes

我通过遵循有关pyodbc的正确指示解决了我的问题-Building Wiki指出:

在Linux上,pyodbc通常是使用unixODBC标头构建的,因此您将需要安装unixODBC及其标头。 在RedHat / CentOS / Fedora框上,这意味着您需要安装unixODBC-devel:

yum install unixODBC-devel

IgorGanapolsky answered 2019-10-06T00:15:22Z

8 votes

执行以下命令(在centos 6.5上测试):

yum install install unixodbc-dev

yum install gcc-c++

yum install python-devel

pip install --allow-external pyodbc --allow-unverified pyodbc pyodbc

user2550587 answered 2019-10-06T00:15:46Z

8 votes

在这个问题上再添加一个答案。对于Linux Debian Stretch版本,您需要安装以下依赖项:

apt-get update

apt-get install g++

apt-get install unixodbc-dev

pip install pyodbc

Alexis.Rolland answered 2019-10-06T00:16:10Z

7 votes

请按照以下步骤在任何Redhat版本中安装Pyodbc

yum install unixODBC unixODBC-devel

yum install gcc-c++

yum install python-devel

pip install pyodbc

Jeevan Chaitanya answered 2019-10-06T00:16:34Z

5 votes

我已经多次引用了这个问题,然后继续在这里找到我一直在寻找的答案:pydbc维基

为了避免在Ubuntu Linux上出现gcc错误,我这样做了:

sudo aptitude install g++

我还从Synaptic安装了以下2个软件包:

python开发

tdsodbc

cammil answered 2019-10-06T00:17:30Z

3 votes

遇到同样的问题

运行后:sudo apt-get install unixodbc-dev

我能够点子安装pyodbc

Cornelis Kuijpers answered 2019-10-06T00:18:08Z

2 votes

我在CentOS 5.5上遇到了同样的问题

除了安装unixODBC-devel外,我还必须安装gcc-c ++

yum install gcc-c++

Andy Madge answered 2019-10-06T00:18:38Z

2 votes

根据针对Ubuntu 18.04的官方Microsoft文档,您应该运行以下命令:

sudo su

curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add -

curl https://packages.microsoft.com/config/ubuntu/18.04/prod.list > /etc/apt/sources.list.d/mssql-release.list

apt-get update

ACCEPT_EULA=Y apt-get install msodbcsql17

exit

如果您使用的是python3.7,请务必执行以下操作:

sudo apt-get install python3.7-dev

rfedorov answered 2019-10-06T00:19:16Z

1 votes

我需要所有这些,但是我还需要安装python devel:

sudo yum install python-devel

Isaac answered 2019-10-06T00:19:40Z

1 votes

如何从zip文件安装pyobdc? 从如何使用pyODBC从Ubuntu连接到Microsoft Sql Server:

下载源vs apt-get

Ubuntu中的apt-get实用程序确实具有pyODBC版本。 (版本2.1.7)。

但是,它已经过时(2.1.7与3.0.6),并且可能无法与较新版本的unixODBC和freetds配合使用。

如果您尝试连接到更高版本的Microsoft Sql Server(2008以后),则这一点尤其重要。

建议您在使用最新的Microsoft Sql Server时使用最新版本的unixODBC,freetds和pyODBC,而不要依赖apt-get中的软件包。

jarppa79 answered 2019-10-06T00:20:38Z

1 votes

我知道这是一个老问题,但是维护者有一个pyodbc GitHub Repo。

我还找到了一个很好的安装FreeTDS和设置配置文件的示例。

在我看来,遵循GitHub文档上的指示始终是最佳选择。 截至2018年2月,对于CentOs7(链接中包含所有功能),他们说:

# Add the RHEL 6 library for Centos-7 of MSSQL driver. Centos7 uses RHEL-6 Libraries.

sudo su

curl https://packages.microsoft.com/config/rhel/6/prod.repo > /etc/yum.repos.d/mssql-release.repo

exit

# Uninstall if already installed Unix ODBC driver

sudo yum remove unixODBC-utf16 unixODBC-utf16-devel #to avoid conflicts

# Install the msodbcsql unixODBC-utf16 unixODBC-utf16-devel driver

sudo ACCEPT_EULA=Y yum install msodbcsql

#optional: for bcp and sqlcmd

sudo ACCEPT_EULA=Y yum install mssql-tools

echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bash_profile

echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc

source ~/.bashrc

# optional: for unixODBC development headers

sudo yum install unixODBC-devel

# the Microsoft driver expects unixODBC to be here /usr/lib64/libodbc.so.1, so add soft links to the '.so.2' files

cd /usr/lib64

sudo ln -s libodbccr.so.2 libodbccr.so.1

sudo ln -s libodbcinst.so.2 libodbcinst.so.1

sudo ln -s libodbc.so.2 libodbc.so.1

# Set the path for unixODBC

export ODBCINI=/usr/local/etc/odbc.ini

export ODBCSYSINI=/usr/local/etc

source ~/.bashrc

# Prepare a temp file for defining the DSN to your database server

vi /home/user/odbcadd.txt

[MyMSSQLServer]

Driver = ODBC Driver 13 for SQL Server

Description = My MS SQL Server

Trace = No

Server = 10.100.1.10

# register the SQL Server database DSN information in /etc/odbc.ini

sudo odbcinst -i -s -f /home/user/odbcadd.txt -l

# check the DSN installation with:

odbcinst -j

cat /etc/odbc.ini

# should contain a section called [MyMSSQLServer]

# install the python driver for database connection

pip install pyodbc

Mike Williamson answered 2019-10-06T00:21:16Z

1 votes

安装pyodbc的一种简单方法是使用“ conda”。 由于conda会自动安装所需的依赖项,包括unixodbc。

libgfortran-ng: 7.2.0-hdf63c60_3 defaults

mkl: 2018.0.3-1 defaults

mkl_fft: 1.0.2-py36_0 conda-forge

mkl_random: 1.0.1-py36_0 conda-forge

numpy-base: 1.14.5-py36hdbf6ddf_0 defaults

pyodbc: 4.0.17-py36_0 conda-forge

unixodbc: 2.3.4-1 conda-forge(可选)

然后libgfortran-ng: 7.2.0-hdf63c60_3 defaults

mkl: 2018.0.3-1 defaults

mkl_fft: 1.0.2-py36_0 conda-forge

mkl_random: 1.0.1-py36_0 conda-forge

numpy-base: 1.14.5-py36hdbf6ddf_0 defaults

pyodbc: 4.0.17-py36_0 conda-forge

unixodbc: 2.3.4-1 conda-forge

它将安装以下软件包:

libgfortran-ng: 7.2.0-hdf63c60_3 defaults

mkl: 2018.0.3-1 defaults

mkl_fft: 1.0.2-py36_0 conda-forge

mkl_random: 1.0.1-py36_0 conda-forge

numpy-base: 1.14.5-py36hdbf6ddf_0 defaults

pyodbc: 4.0.17-py36_0 conda-forge

unixodbc: 2.3.4-1 conda-forge

Salah answered 2019-10-06T00:22:08Z

1 votes

我面临着同样的问题。 对于python3.6.8和ubuntu 16.04,以上内容都没有帮助我。

sudo apt-get install python3.6-dev

这解决了我的问题。

Nerdic Sapo answered 2019-10-06T00:22:35Z

0 votes

我用这个:

yum install unixODBC.x86_64

根据centos的版本可能会更改软件包,您可以像这样进行搜索:

yum search unixodbc

Oriana Maita answered 2019-10-06T00:23:06Z

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值