2010-06-02 2 views
47

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

error: command 'gcc' failed with exit status 1

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

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

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

ответ

34

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

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

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

В дополнение к установке UnixODBC-Devel я также должен был установить gcc- C++

yum install gcc-c++ 
87

в Ubuntu, вам необходимо установить UnixODBC-Dev:

sudo apt-get install unixodbc-dev 

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

sudo apt-get install python-pip 

раз, что будет установлена, вы должны быть в состоянии успешно установить pyodbc:

pip install pyodbc 
+0

мне нужно установить питон-Devel тоже до этого работало для меня. – Mike

+0

Yesssss !!!это было пятое решение, которое я использовал, и тот, который работал, спасибо :) – fanny

+0

Это сработало! Я получил сообщение об ошибке «Не могу найти пакет», но запуск sudo apt-get update сначала исправил его. – ChrisE

3

Я ссылается на этот вопрос несколько раз, и ушел на самом деле найти ответ, который я искал: 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

мне нужно было все это, но я также установил необходимо питона Devel:

sudo yum install python-devel 
1

Как об установке pyobdc из архива? От 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

компиляция завершена. Ошибка: команда 'i686-linuxgnu-gccc' не удалась с статусом выхода 1 – jarppa79

+0

предупреждение: параметр командной строки ä-Wstrict-prototypes 'действителен для c/Objc, но не для C++ [включен по умолчанию] – jarppa79

+0

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

6

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

Выполните следующие шаги, чтобы установить pyodbc в любой RedHat версии

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

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

Я также нашел a very good example for installing FreeTDS and setting up the config files.


Следуя инструкциям в документах GitHub, мне кажется, что это всегда лучший вариант. По состоянию на февраль 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 
+0

какие команды после них –

+0

Привет, Шубэм, извините, я не понимаю ваш вопрос. После ввода 'pip install pyodbc', если все остальное пойдет хорошо, у вас будет установлен и доступен как драйвер, так и пакет. Вы «просто используете» пакет, создавая объект соединения и указатель, аналогичный любому другому программному доступу к БД. Вы можете посмотреть [их документацию] (https://github.com/mkleehammer/pyodbc/wiki) для примера. –

+0

большое спасибо @mike, я решил проблему –

Смежные вопросы