2010-06-02 17 views
47

Sto utilizzando Linux (2.6.18-164.15.1.el5.centos.plus) e sto provando a installare pyodbc. Sto facendo pip installare pyodbc e ottenere un lunghissimo elenco di errori, che terminano inImpossibile installare pyodbc su Linux

error: command 'gcc' failed with exit status 1

ho guardato in /root/.pip/pip.log e ho visto il seguente:

InstallationError: Command /usr/local/bin/python -c "import setuptools; file='/home/build/pyodbc/setup.py'; execfile('/home/build/pyodbc/setup.py')" install --single-version-externally-managed --record /tmp/pip-7MS9Vu-record/install-record.txt failed with error code 1

Qualcuno ha avuto un problema simile installando pyodbc?

risposta

34

ho risolto il mio problema seguendo le indicazioni corrette sulla pyodbc - Building wiki in cui si afferma:

On Linux, pyodbc is typically built using the unixODBC headers, so you will need unixODBC and its headers installed. On a RedHat/CentOS/Fedora box, this means you would need to install unixODBC-devel:

yum install unixODBC-devel 
2

Ho avuto lo stesso problema su CentOS 5.5

Oltre a installare unixODBC-devel ho dovuto anche installare gcc- C++

yum install gcc-c++ 
87

Su Ubuntu, è necessario installare unixODBC-dev:

sudo apt-get install unixodbc-dev 

Installare pip utilizzando questo comando:

sudo apt-get install python-pip 

una volta che è installato, si dovrebbe essere in grado di installare pyodbc successo:

pip install pyodbc 
+0

avevo bisogno di installare python-devel troppo prima di questo ha lavorato per me. – Mike

+0

Yesssss !!!questa era la quinta soluzione che ho usato e quella che funzionava, grazie :) – fanny

+0

Ha funzionato! Ho ricevuto un messaggio d'errore "Impossibile trovare il pacchetto", ma sudo apt-get update è stato risolto prima. – ChrisE

3

ho fatto riferimento a questa domanda più volte, e andato per trovare effettivamente la risposta che cercavo qui: pyodbc wiki

To avoid gcc error on Ubuntu Linux, I did:

sudo aptitude install g++ 

I also installed the following 2 packages from Synaptic:

  • python-dev

  • tdsodbc

0

Ho bisogno di tutto questo, ma ho anche bisogno devel python installato:

sudo yum install python-devel 
1

Come sull'installazione pyobdc da file zip? Da How to connect to Microsoft Sql Server from Ubuntu using pyODBC:

Download source vs apt-get

The apt-get utility in Ubuntu does have a version of pyODBC. (version 2.1.7).
However, it is badly out-of-date (2.1.7 vs 3.0.6) and may not work well with the newer versions of unixODBC and freetds.
This is especially important if you are trying to connect to later versions of Microsoft Sql Server (2008 onwards).
It is recommended that you use the latest versions of unixODBC, freetds and pyODBC when working with the latest Microsoft Sql Server instead of relying on packages in apt-get.

+1

terminata. errore: comando 'i686-linuxgnu-gccc' non riuscito con exit status 1 – jarppa79

+0

avviso: opzione della riga di comando ä -Wstrict-prototypes 'è valido per c/Objc ma non per C++ [abilitato per impostazione predefinita] – jarppa79

+0

apt-get install aptitude aptitude install g ++ apt-get installa python-dev python ./setup.py installa – jarppa79

6

Eseguire i seguenti comandi (testato su 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 
4

seguire la procedura per l'installazione pyodbc in qualsiasi versione RedHat

yum install unixODBC unixODBC-devel 
yum install gcc-c++ 
yum install python-devel 
pip install pyodbc 
1

So che questo è un vecchia domanda, ma il manutentore ha un pyodbc GitHub Repo.

Ho trovato anche un very good example for installing FreeTDS and setting up the config files.


Seguendo le istruzioni sui documenti GitHub mi sembra di essere sempre l'opzione migliore. A partire dal febbraio 2018, per CentOs7 (hanno tutti i sapori al link) dicono:

# 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 
+0

cosa sono i comandi dopo questi –

+0

Ciao Shubham, mi dispiace, non capisco la tua domanda. Dopo aver digitato 'pip install pyodbc', supponendo che tutto il resto sia andato a posto, avrete sia il driver che il pacchetto installati e disponibili. Dovresti "usare semplicemente" il pacchetto, creando l'oggetto di connessione e il cursore in modo simile a qualsiasi altro accesso programmatico a un DB. Puoi guardare [la loro documentazione] (https://github.com/mkleehammer/pyodbc/wiki) per gli esempi. –

+0

molte grazie @mike, ho risolto il problema –