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?
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
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
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
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
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
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
Lutté avec le même problème
Après avoir exécuté: Sudo apt-get install unixodbc-dev
J'ai pu installer pyodbc
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
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++
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
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.
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.
J'avais besoin de tout ça, mais j'avais aussi besoin de python devel:
Sudo yum install python-devel
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
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