我正在运行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')”install - -single-version-external-managed --record /tmp/pip-7MS9Vu-record/install-record.txt失败,错误代码为1
安装pyodbc有没有类似的问题?
在Ubuntu上,你需要安装unixodbc-dev:
sudo apt-get install unixodbc-dev
使用以下命令安装pip:
sudo apt-get install python-pip
一旦安装,您应该能够成功安装pyodbc:
pip install pyodbc
根据official Microsoft docs的Ubuntu 18.04,你应该运行下一个命令:
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
我需要所有这些,但我还需要安装python devel:
sudo yum install python-devel
如何从zip文件安装pyobdc?来自How to connect to Microsoft Sql Server from Ubuntu using pyODBC:
下载源代码与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中的软件包。
我知道这是一个老问题,但维护者有一个pyodbc
GitHub Repo。
我还发现了一个very good example for installing FreeTDS and setting up the config files。
遵循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
我遇到了同样的问题。对于python3.6.8和ubuntu 16.04以上都没有帮助我。
sudo apt-get install python3.6-dev
这解决了我的问题。
我用过这个:
yum install unixODBC.x86_64
根据centos的版本可能会更改包,您可以像这样搜索:
yum search unixodbc
我通过遵循pyodbc - Building wiki上的正确指示来解决我的问题,其中指出:
在Linux上,pyodbc通常使用unixODBC标头构建,因此您需要安装unixODBC及其标头。在RedHat / CentOS / Fedora框中,这意味着您需要安装unixODBC-devel:
yum install unixODBC-devel
在这个问题上再添一个答案。对于Linux Debian Stretch版本,您需要安装以下依赖项:
apt-get update
apt-get install g++
apt-get install unixodbc-dev
pip install pyodbc
执行以下命令(在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
按照以下步骤在任何redhat版本中安装pyodbc
yum install unixODBC unixODBC-devel
yum install gcc-c++
yum install python-devel
pip install pyodbc
我已多次引用这个问题,然后继续实际找到我在这里寻找的答案:pyodbc wiki
为了避免在Ubuntu Linux上出现gcc错误,我做了:
sudo aptitude install g++
我还从Synaptic安装了以下两个软件包:
- 蟒蛇-dev的
- tdsodbc
挣扎着同样的问题
跑完后:sudo apt-get install unixodbc-dev
我能够安装pyodbc
我在CentOS 5.5上遇到了同样的问题
除了安装unixODBC-devel之外,我还必须安装gcc-c ++
yum install gcc-c++
安装pyodbc的简单方法是使用'conda'。由于conda自动安装所需的依赖项,包括unixodbc。
conda --ugrade all
(可选)
然后conda install pyodbc
它将安装以下包:
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