Невозможно установить pyodbc в Linux - PullRequest
63 голосов
/ 02 июня 2010

Я использую 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; файл = '/ home / build / pyodbc / setup.py'; execfile ('/ home / build / pyodbc /setup.py ') "install --single-version-внешне управляемая --record /tmp/pip-7MS9Vu-record/install-record.txt завершилась ошибкой с кодом ошибки 1

У кого-нибудь была похожая проблема при установке pyodbc?

Ответы [ 15 ]

1 голос
/ 15 июня 2018

Простой способ установить 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

1 голос
/ 06 февраля 2018

Я знаю, что это старый вопрос, но у сопровождающего есть pyodbc GitHub Repo .

Я также нашел очень хороший пример для установки FreeTDS и настройки файлов конфигурации .


Следование инструкциям на GitHub docs мне кажется всегда лучшим вариантом. По состоянию на февраль 2018 года для 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
1 голос
/ 03 июля 2014

Как насчет установки pyobdc из zip-файла? От Как подключиться к Microsoft Sql Server из Ubuntu с помощью pyODBC :

Источник загрузки vs apt-get

Утилита apt-get в Ubuntu имеет версию pyODBC. (версия 2.1.7).
Однако он сильно устарел (2.1.7 против 3.0.6) и может не работать с более новыми версиями unixODBC и freetds.
Это особенно важно, если вы пытаетесь подключиться к более поздним версиям Microsoft Sql Server (начиная с 2008 г.).
Рекомендуется использовать последние версии unixODBC, freetds и pyODBC при работе с последним сервером Microsoft Sql вместо использования пакетов в apt-get.

1 голос
/ 08 июня 2013

Мне нужно было все это, но мне также нужно было установить python devel:

sudo yum install python-devel
0 голосов
/ 16 апреля 2018

Я использовал это:

yum install unixODBC.x86_64

В зависимости от версии Centos может изменить пакет, вы можете искать так:

yum search unixodbc
...