Подтвердить что ты не робот

Не удалось установить pyodbc в Linux

Я запускаю Linux (2.6.18-164.15.1.el5.centos.plus) и пытаюсь установить pyodbc. Я делаю pip install pyodbc и получаю очень длинный список ошибок, которые заканчиваются на

Ошибка: команда 'gcc' не удалась с статусом выхода 1

Я просмотрел /root/.pip/pip.log и увидел следующее:

InstallationError: Command/usr/local/bin/python -c "import setuptools; файл= '/home/build/pyodbc/setup.py'; execfile ('/home/build/pyodbc/setup.py ')" install -single-version-external-managed -record/tmp/pip-7MS9Vu-record/install-record.txt не удалось с кодом ошибки 1

У кого-то была аналогичная проблема с установкой pyodbc?

4b9b3361

Ответ 1

Я решил свою проблему, выполнив правильные указания на pyodbc - Создание вики, в котором говорится:

В Linux pyodbc обычно создается с использованием заголовков unixODBC, поэтому вам потребуется установить unixODBC и его заголовки. На коробке RedHat/CentOS/Fedora это означает, что вам необходимо установить unixODBC-devel:

yum install unixODBC-devel

Ответ 2

В Ubuntu вам нужно установить unixodbc-dev:

sudo apt-get install unixodbc-dev

Установите pip с помощью этой команды:

sudo apt-get install python-pip

После установки вы сможете успешно установить pyodbc:

pip install pyodbc

Ответ 3

Следуйте инструкциям ниже, чтобы установить pyodbc в любой версии redhat

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

Ответ 4

Добавляем еще один ответ на этот вопрос. Для выпуска Linux Debian Stretch вам необходимо установить следующие зависимости:

apt-get update
apt-get install g++
apt-get install unixodbc-dev
pip install pyodbc

Ответ 5

Выполните следующие команды (проверенные на 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

Ответ 6

Боролся с той же проблемой

После запуска: sudo apt-get install unixodbc-dev

Я был в состоянии pip установить pyodbc

Ответ 7

Я неоднократно ссылался на этот вопрос и продолжал искать ответ, который я искал здесь: pyodbc wiki

Чтобы избежать ошибки gcc на Ubuntu Linux, я сделал:

sudo aptitude install g++

Я также установил следующие 2 пакета из Synaptic:

  • python-dev

  • tdsodbc

Ответ 8

У меня была такая же проблема с CentOS 5.5

В дополнение к установке unixODBC-devel мне также пришлось установить gcc-С++

yum install gcc-c++

Ответ 9

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

Ответ 10

Согласно официальным документам Microsoft для Ubuntu 18.04, вы должны выполнить следующие команды:

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

Если вы используете python3.7, очень важно запустить:

sudo apt-get install python3.7-dev

Ответ 11

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

sudo yum install python-devel

Ответ 12

Как насчет установки pyobdc из zip файла? Из Как подключиться к серверу Microsoft Sql от 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.

Ответ 13

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

Я также нашел очень хороший пример для установки 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

Ответ 14

Я столкнулся с той же проблемой. Для python3.6.8 и ubuntu 16.04 ничего из вышеперечисленного мне не помогло.

sudo apt-get install python3.6-dev

Это решило мою проблему.

Ответ 15

В моем случае (Amazon Linux AMI) ничего из вышеперечисленного не сработало. Сработало следующее (идея здесь):

  • Найдите путь к файлу cc1plus. Для меня это было в /usr/libexec/gcc/x86_64-amazon-linux/4.8.5/cc1plus. Для вас это может немного отличаться. Попробуйте ls -l /usr/libexec/gcc найти правильное имя каталога и продолжайте.
  • Найдите каталоги на своем пути: echo $PATH (для меня это был /sbin:/bin:/usr/sbin:/usr/bin:/opt/aws/bin)
  • Поместите ссылку на cc1plus в один из каталогов в вашей PATH: sudo ln -s /PATH/TO/cc1plus /DIRinPATH/
    Например, в моем случае:
    sudo ln -s /usr/libexec/gcc/x86_64-amazon-linux/4.8.5/cc1plus /usr/bin/

Ответ 16

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

yum install unixODBC.x86_64

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

yum search unixodbc