web-dev-qa-db-fra.com

Impossible d'installer pyodbc sur Linux

J'utilise Linux (2.6.18-164.15.1.el5.centos.plus) et j'essaie d'installer pyodbc. Je fais pip installer pyodbc et obtenir une très longue liste d'erreurs, qui se terminent par 

erreur: la commande 'gcc' a échoué avec le statut de sortie 1

J'ai regardé dans /root/.pip/pip.log et j'ai vu ce qui suit:

InstallationError: Commande/usr/local/bin/python -c "import setuptools; fichier = '/ home/build/pyodbc/setup.py'; execfile ('/ home/build/pyodbc/setup.py' ) "install --single-version-externally-managed -record /tord/pip-7MS9Vu-record/install-record.txt a échoué avec le code d'erreur 1

Quelqu'un a-t-il eu un problème similaire lors de l'installation de pyodbc?

57
IgorGanapolsky

J'ai résolu mon problème en suivant les instructions correctes sur pyodbc - Building wiki qui indique:

Sur Linux, pyodbc est généralement construit à l'aide des en-têtes unixODBC. Vous devrez donc installer unixODBC et ses en-têtes. Sur une boîte RedHat/CentOS/Fedora, cela signifie que vous devrez installer unixODBC-devel:

yum install unixODBC-devel
39
IgorGanapolsky

Sous Ubuntu, vous devrez installer unixodbc-dev:

Sudo apt-get install unixodbc-dev

Installez pip en utilisant cette commande:

Sudo apt-get install python-pip

une fois installé, vous devriez pouvoir installer pyodbc avec succès:

pip install pyodbc
107
Jim Clouse

Exécutez les commandes suivantes (testées sur 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
7
user2550587

Ajouter une réponse supplémentaire à cette question . Pour Linux Debian Stretch release, vous devez installer les dépendances suivantes:

apt-get update
apt-get install g++
apt-get install unixodbc-dev
pip install pyodbc
7
Alexis.Rolland

Suivez les étapes ci-dessous pour installer pyodbc dans n’importe quelle version de redhat

yum install unixODBC unixODBC-devel
yum install gcc-c++
yum install python-devel
pip install pyodbc
6
Jeevan Chaitanya

J'ai référencé cette question à plusieurs reprises et ai poursuivi la recherche de la réponse que je cherchais ici: pyodbc wiki

Pour éviter les erreurs gcc sur Ubuntu Linux, j'ai: 

Sudo aptitude install g++

J'ai également installé les 2 packages suivants à partir de Synaptic: 

  • python-dev 

  • tdsodbc

5
cammil

Lutté avec le même problème 

Après avoir exécuté: Sudo apt-get install unixodbc-dev

J'ai pu installer pyodbc

3
Cornelis Kuijpers

Selon Microsoft docs officiel pour Ubuntu 18.04, vous devriez exécuter les commandes suivantes:

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

Si vous utilisez python3.7, il est très important d’exécuter:

Sudo apt-get install python3.7-dev

2
rfedorov

J'ai eu le même problème sur CentOS 5.5

En plus d'installer unixODBC-devel, j'ai également dû installer gcc-c ++

yum install gcc-c++
2
Andy Madge

Je sais que c’est une vieille question, mais le responsable a un pyodbc GitHub Repo .

J'ai aussi trouvé un très bon exemple d'installation de FreeTDS et de la configuration des fichiers de configuration .


Suivre les instructions sur la documentation GitHub me semble toujours être la meilleure option. Depuis février 2018, pour CentOs7 (ils ont tous les goûts sur le lien), ils disent:

# 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
1
Mike Williamson

Comment installer pyobdc à partir du fichier Zip? Depuis Comment se connecter à Microsoft SQL Server à partir d’Ubuntu avec pyODBC :

Télécharger la source contre apt-get

L'utilitaire apt-get dans Ubuntu a une version de pyODBC. (version 2.1.7).
Cependant, il est très obsolète (2.1.7 vs 3.0.6) et risque de ne pas bien fonctionner avec les versions les plus récentes de unixODBC et de freetds.
Cela est particulièrement important si vous essayez de vous connecter à des versions ultérieures de Microsoft Sql Server (à partir de 2008).
Il est recommandé d'utiliser les dernières versions de unixODBC, freetds et pyODBC lorsque vous travaillez avec le dernier serveur Microsoft Sql au lieu de vous fier aux paquets dans apt-get.

1
jarppa79

J'ai fait face au même problème. Pour python3.6.8 et ubuntu 16.04 rien de ce qui précède ne m'a pas aidé 

Sudo apt-get install python3.6-dev

Cela a résolu mon problème.

1
Nerdic Sapo

J'avais besoin de tout ça, mais j'avais aussi besoin de python devel:

Sudo yum install python-devel
1
Isaac

Un moyen facile d'installer pyodbc est d'utiliser 'conda'. Comme conda installe automatiquement les dépendances requises, y compris unixodbc.

conda --ugrade all (facultatif)

alors conda install pyodbc

il installera les paquets suivants:

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

1
Salah

J'ai utilisé ceci:

yum install unixODBC.x86_64

En fonction de la version de centos susceptible de modifier le package, vous pouvez rechercher comme ceci:

yum search unixodbc
0
Oriana Maita