web-dev-qa-db-de.com

Pyodbc kann nicht unter Linux installiert werden

Ich verwende Linux (2.6.18-164.15.1.el5.centos.plus) und versuche pyodbc zu installieren. Ich mache pip install pyodbc und bekomme eine sehr lange Liste von Fehlern, die auf enden 

fehler: Befehl 'gcc' mit Exitstatus 1 fehlgeschlagen

Ich schaute in /root/.pip/pip.log und sah Folgendes:

Installationsfehler: Befehl/usr/local/bin/python -c "import setuptools; file = '/ home/build/pyodbc/setup.py'; execfile ('/ home/build/pyodbc/setup.py') ) "install --single-version-extern verwaltete --record /tmp/pip-7MS9Vu-record/install-record.txt schlug mit Fehlercode 1 fehl

Hat jemand ein ähnliches Problem bei der Installation von pyodbc?

57
IgorGanapolsky

Ich habe mein Problem gelöst, indem ich die richtigen Anweisungen auf pyodbc - Building wiki befolge, die besagt:

Unter Linux wird pyodbc in der Regel mit den unixODBC-Headern erstellt. Daher müssen Sie unixODBC und dessen Header installieren. Auf einer RedHat/CentOS/Fedora-Box bedeutet dies, dass Sie unixODBC-devel installieren müssen:

yum install unixODBC-devel
39
IgorGanapolsky

Auf Ubuntu müssen Sie unixodbc-dev installieren:

Sudo apt-get install unixodbc-dev

Installieren Sie pip mit folgendem Befehl:

Sudo apt-get install python-pip

sobald dies installiert ist, sollten Sie pyodbc erfolgreich installieren können:

pip install pyodbc
107
Jim Clouse

Führen Sie die folgenden Befehle aus (getestet auf 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

Hinzufügen einer weiteren Antwort auf diese Frage .. Für das Release Linux Debian Stretch müssten Sie die folgenden Abhängigkeiten installieren:

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

Befolgen Sie die folgenden Schritte, um pyodbc in einer beliebigen Redhat-Version zu installieren

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

Ich habe auf diese Frage mehrmals verwiesen und habe die Antwort, die ich hier gesucht habe, tatsächlich gefunden: pyodbc wiki

Um einen gcc-Fehler unter Ubuntu Linux zu vermeiden, habe ich Folgendes getan: 

Sudo aptitude install g++

Ich habe auch die folgenden 2 Pakete von Synaptic installiert: 

  • python-dev 

  • tdsodbc

5
cammil

Kämpfte mit dem gleichen Problem 

Nach dem Ausführen: Sudo apt-get install unixodbc-dev

Ich konnte pyodbc installieren

3

Laut offiziellen Microsoft-Dokumenten für Ubuntu 18.04 solltest du folgende Befehle ausführen:

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

Wenn Sie python3.7 verwenden, ist es sehr wichtig, Folgendes auszuführen:

Sudo apt-get install python3.7-dev

2
rfedorov

Ich hatte das gleiche Problem mit CentOS 5.5

Neben der Installation von unixODBC-devel musste ich auch gcc-c ++ installieren

yum install gcc-c++
2
Andy Madge

Ich weiß, das ist eine alte Frage, aber der Betreuer hat ein pyodbc GitHub Repo .

Ich fand auch ein sehr gutes Beispiel für die Installation von FreeTDS und das Einrichten der Konfigurationsdateien .


Das Befolgen der Anweisungen in den GitHub-Dokumenten scheint mir immer die beste Option zu sein. Ab Februar 2018 sagen CentOs7 (sie haben alle Geschmacksrichtungen bei der Verbindung):

# 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

Wie wäre es, pyobdc aus einer Zip-Datei zu installieren? Von So stellen Sie mit pyODBC von Ubuntu aus eine Verbindung zum Microsoft SQL Server her :

Downloadquelle gegen apt-get

Das apt-get-Dienstprogramm in Ubuntu hat eine Version von pyODBC. (Version 2.1.7).
Es ist jedoch veraltet (2.1.7 vs. 3.0.6) und funktioniert möglicherweise nicht mit den neueren Versionen von UnixODBC und Freetds.
Dies ist besonders wichtig, wenn Sie versuchen, eine Verbindung zu späteren Versionen von Microsoft SQL Server (ab 2008) herzustellen.
Es wird empfohlen, bei der Arbeit mit dem neuesten Microsoft SQL Server die neuesten Versionen von UnixODBC, Freetds und PyODBC zu verwenden, anstatt sich auf Pakete in apt-get zu verlassen.

1
jarppa79

Ich war mit demselben Problem konfrontiert. Für Python3.6.8 und Ubuntu 16.04 hat mir keiner der obigen Punkte geholfen. 

Sudo apt-get install python3.6-dev

Das hat mein Problem gelöst.

1
Nerdic Sapo

Ich brauchte das alles, aber ich brauchte auch Python Devel installiert:

Sudo yum install python-devel
1
Isaac

Pyodbc lässt sich auf einfache Weise mit 'conda' installieren. As Conda installiert automatisch erforderliche Abhängigkeiten einschließlich Unixodbc.

conda --ugrade all (optional)

dann conda install pyodbc

es werden folgende Pakete installiert:

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

Ich habe das benutzt:

yum install unixODBC.x86_64

Abhängig von der Version von Centos, die das Paket ändern könnte, können Sie wie folgt suchen:

yum search unixodbc
0
Oriana Maita