Programing

Linux에 pyodbc를 설치할 수 없습니다.

lottogame 2020. 11. 3. 07:37
반응형

Linux에 pyodbc를 설치할 수 없습니다.


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; file = '/ home / build / pyodbc / setup.py'; execfile ( '/ home / build / pyodbc / setup.py')"install- -single-version-externally-record /tmp/pip-7MS9Vu-record/install-record.txt가 오류 코드 1과 함께 실패했습니다.

누구든지 pyodbc를 설치하는 데 비슷한 문제가 있습니까?


Ubuntu에서는 unixodbc-dev를 설치해야합니다.

sudo apt-get install unixodbc-dev

다음 명령을 사용하여 pip를 설치합니다.

sudo apt-get install python-pip

일단 설치되면 pyodbc를 성공적으로 설치할 수 있습니다.

pip install pyodbc

pyodbc-Building wiki 에 대한 올바른 지침에 따라 문제를 해결했습니다 .

Linux에서 pyodbc는 일반적으로 unixODBC 헤더를 사용하여 빌드되므로 unixODBC 및 해당 헤더가 설치되어 있어야합니다. RedHat / CentOS / Fedora 상자에서 이것은 unixODBC-devel을 설치해야 함을 의미합니다 :

yum install unixODBC-devel

모든 redhat 버전에 pyodbc를 설치하려면 아래 단계를 따르십시오.

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

이 질문에 대한 답을 하나 더 추가합니다. 들어 데비안 리눅스 스트레치 릴리스 다음 종속성을 설치해야합니다 :

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

다음 명령을 실행합니다 (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

같은 문제로 어려움을 겪음

실행 후 : sudo apt-get install unixodbc-dev

나는 pyodbc를 설치할 수 있었다.


나는이 질문을 여러 번 언급했고 실제로 내가 찾고 있던 답을 찾았다 : pyodbc wiki

Ubuntu Linux에서 gcc 오류를 방지하기 위해 다음을 수행했습니다.

sudo aptitude install g++

또한 Synaptic에서 다음 2 개의 패키지를 설치했습니다.

  • python-dev

  • tdsodbc


CentOS 5.5에서 동일한 문제가 발생했습니다.

unixODBC-devel을 설치하는 것 외에도 gcc-c ++를 설치해야했습니다.

yum install gcc-c++

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


Ubuntu 18.04에 대한 공식 Microsoft 문서따르면 다음 명령을 실행해야합니다.

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


나는 모든 것이 필요했지만 python devel도 설치해야했습니다.

sudo yum install python-devel

zip 파일에서 pyobdc를 설치하는 것은 어떻습니까? 에서 어떻게 pyODBC를 사용하여 우분투에서 Microsoft SQL Server를 연결합니다 :

소스 다운로드 vs apt-get

Ubuntu의 apt-get 유틸리티에는 pyODBC 버전이 있습니다. (버전 2.1.7).
그러나 이는 매우 오래되었으며 (2.1.7 대 3.0.6) 최신 버전의 unixODBC 및 freetd에서는 제대로 작동하지 않을 수 있습니다.
이는 이후 버전의 Microsoft Sql Server (2008 이상)에 연결하려는 경우 특히 중요합니다.
apt-get의 패키지에 의존하는 대신 최신 Microsoft SQL Server로 작업 할 때 최신 버전의 unixODBC, freetds 및 pyODBC를 사용하는 것이 좋습니다.


나는 이것이 오래된 질문이라는 것을 알고 있지만 관리자에게는 pyodbcGitHub Repo가 있습니다.

또한 FreeTDS 설치 및 구성 파일 설정에 대한 아주 좋은 예를 찾았 습니다 .


GitHub 문서의 지침을 따르는 것이 항상 최선의 선택 인 것 같습니다. 2018 년 2 월 현재 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

나는 같은 문제에 직면했다. python3.6.8 및 우분투 16.04의 경우 위의 어느 것도 도움이되지 않았습니다.

sudo apt-get install python3.6-dev

이것은 내 문제를 해결했습니다.


제 경우에는 ( 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)
  • Put a link to cc1plus in one of the directories in your PATH: sudo ln -s /PATH/TO/cc1plus /DIRinPATH/
    For example in my case:
    sudo ln -s /usr/libexec/gcc/x86_64-amazon-linux/4.8.5/cc1plus /usr/bin/

I used this:

yum install unixODBC.x86_64

Depending on the version of centos could change the package, you can search like this:

yum search unixodbc

참고URL : https://stackoverflow.com/questions/2960339/unable-to-install-pyodbc-on-linux

반응형