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를 사용하는 것이 좋습니다.
나는 이것이 오래된 질문이라는 것을 알고 있지만 관리자에게는 pyodbc
GitHub 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
'Programing' 카테고리의 다른 글
Sublime Text 2가 시작될 때 마지막으로 열린 파일 / 프로젝트를 열지 못하게하는 방법 (0) | 2020.11.04 |
---|---|
특정 속성 만있는 태그를 찾는 방법-BeautifulSoup (0) | 2020.11.04 |
공개 키를 사용하여 openssl에서 대용량 파일을 암호화하는 방법 (0) | 2020.11.03 |
Git 병합 중단 (0) | 2020.11.03 |
HTML 구문 분석의 예를 제공 할 수 있습니까? (0) | 2020.11.03 |