programing

Python용 cx_Oracle 설치

newstyles 2023. 3. 10. 21:19

Python용 cx_Oracle 설치

Debian 5에서 python용 cx_oracle 모듈을 설치하려고 했지만 아무런 성과가 없었습니다.먼저 oracle-xe-client와 그 종속성을 설치했습니다(다음 링크의 튜토리얼에 따릅니다).

다음으로 /usr/lib/oracle/xe/app/oracle/product/10.2.0/client/bin의 스크립트를 사용하여 PATH, ORACLE_HOME, NLS_LANG 등의 환경변수를 채웠습니다.

이 작업이 완료되면 다음을 실행하려고 했습니다.

sudo easy_install cx_oracle

그러나 다음과 같은 오류가 계속 발생합니다.

Searching for cx-oracle
Reading http://pypi.python.org/simple/cx_oracle/
Reading http://cx-oracle.sourceforge.net
Reading http://starship.python.net/crew/atuining
Best match: cx-Oracle 5.0.4
Downloading http://prdownloads.sourceforge.net/cx-oracle/cx_Oracle-5.0.4.tar.gz?download
Processing cx_Oracle-5.0.4.tar.gz
Running cx_Oracle-5.0.4/setup.py -q bdist_egg --dist-dir /tmp/easy_install-xsylvG/cx_Oracle-5.0.4/egg-dist-tmp-8KoqIx
error: cannot locate an Oracle software installation

내가 뭘 놓쳤는지 알아?

RPM이 RPM이 .root.

  1. 의존 관계

    다음 패키지를 설치합니다.

    apt-get install python-dev build-essential libaio1
    
  2. Linux x86-64용 Instant Client 다운로드

    Oracle 다운로드 사이트에서 다음 파일을 다운로드합니다.

    파일 미리보기

  3. zip 파일을 추출합니다.

    다운로드한 zip 파일을 다음 디렉토리에 압축을 풉니다.

    /opt/ora/
    
  4. 환경 변수 추가

    파일을 ./etc/profile.d/oracle.sh그 중에는

    export ORACLE_HOME=/opt/ora/instantclient_11_2
    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME
    

    파일을 ./etc/ld.so.conf.d/oracle.conf그 중에는

    /opt/ora/instantclient_11_2
    

    다음 명령을 실행합니다.

    sudo ldconfig
    

    주의: 설정을 적용하려면 재부팅해야 할 수 있습니다.

  5. 심볼링크 생성

    cd $ORACLE_HOME 
    ln -s libclntsh.so.11.1 libclntsh.so
    
  6. cx_Oracle

    • 하여 설치할 수 .pip

      pip install cx_Oracle
      
    • 또는 수동으로 설치

      Python 및 Oracle 버전에 해당하는 cx_Oracle 소스 zip을 다운로드합니다.그런 다음 아카이브를 확장하고 추출된 디렉토리에서 실행합니다.

      python setup.py build 
      python setup.py install
      

alienrpm 파일을 Alien으로 합니다. 하면 수 .apt-get purge no-longer-needed.

제 경우, 제가 필요한 유일한 env 변수는LD_LIBRARY_PATH:서서::::::

echo export LD_LIBRARY_PATH=/usr/lib/oracle/11.2/client/lib >> ~/.bashrc
source ~/.bashrc

는 """가 될 입니다./usr/lib/oracle/xe/app/oracle/product/10.2.0/client/lib.

다음은 Mac과 Linux에서 모두 작동했습니다.이 명령어는 환경변수를 설정할 필요 없이 필요한 추가 파일을 다운로드해야 합니다.

python -m pip install cx_Oracle --pre

--pre 옵션은 오라클 드라이버를 개발 및 사전 릴리스하기 위한 것입니다.이 게시물 현재로서는cx_Oracle-6.0rc1.tar.gzPython6.(Python 3.6을 사용하고 있습니다)

Thx Burhan Kalid, 나는 당신의 "You need to be root" 인용구를 간과했지만, 당신이 여기서 뿌리가 아닐 때 길을 찾았습니다.

포인트 7에서는 다음을 사용할 필요가 있습니다.

sudo env ORACLE_HOME=$ORACLE_HOME python setup.py install 

또는

sudo env ORACLE_HOME=/path/to/instantclient python setup.py install

고마워요 버한 칼리드소프트링크를 만들라는 당신의 조언으로 설치가 제대로 되었습니다.

개요:

  1. 인스턴트 클라이언트의 기본 버전과 SDK 버전이 모두 필요합니다.

  2. LD_LIBRARY_PATH와 ORACLE_HOME을 모두 설정해야 합니다.

  3. 소프트 링크(이 경우는 ln -s libclntsh.so.12.1 libclntsh.so)를 작성해야 합니다.

이 중 어느 곳에도 기록되지 않았습니다. 믿을 수 없을 정도로 실망스러웠습니다.어제 소프트 링크를 만드는 방법을 몰라서 실패한 빌드로 3시간 넘게 보냈습니다.

ORACLE_HOME에 접속할 수 없는 것은 sudo라고 생각합니다.이렇게 하면 돼요.

스도비수도

텍스트 추가를 수정하다

기본 env_keep += "ORACLE_HOME"

그리고나서

sudo python setup.py 빌드 설치

또는 다음 절차에 따라 PIP 없이 cx_Oracle 모듈을 설치할 수도 있습니다.

  1. 여기서 소스를 다운로드합니다.https://pypi.python.org/pypi/cx_Oracle [cx_Oracle-6.1.tar.gz]
  2. 다음 명령을 사용하여 tar를 추출합니다(Linux).

    gunzip cx_Oracle-6.1.tar.gz

    tar -xf cx_Oracle-6.1.tar

  3. cd cx_Oracle-6.1

  4. 모듈 구축

    python setup.py 빌드

  5. 모듈을 설치합니다.

    python setup.py 설치

Ubuntu 16에서는 이 방법이 효과가 있었습니다.

Oracle 웹사이트에서 ('instantclient-basic-linux.x64-12.2.0.1.0.zip' 및 'instantclient-sdk-linux.x64-12.2.0.1.0.zip')를 다운로드한 후 다음 스크립트를 수행합니다(조목씩 수행할 수 있으며 ROOT로 수행했습니다).

apt-get install -y python-dev build-essential libaio1
mkdir -p /opt/ora/
cd /opt/ora/

## Now put 2 ZIP files:
# ('instantclient-basic-linux.x64-12.2.0.1.0.zip' and 'instantclient-sdk-linux.x64-12.2.0.1.0.zip') 
# into /opt/ora/ and unzip them -> both will be unzipped into 1 directory: /opt/ora/instantclient_12_2 

rm -rf /etc/profile.d/oracle.sh
echo "export ORACLE_HOME=/opt/ora/instantclient_12_2"  >> /etc/profile.d/oracle.sh
echo "export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME"  >> /etc/profile.d/oracle.sh
chmod 777 /etc/profile.d/oracle.sh
source /etc/profile.d/oracle.sh
env | grep -i ora  # This will check current ENVIRONMENT settings for Oracle


rm -rf /etc/ld.so.conf.d/oracle.conf
echo "/opt/ora/instantclient_12_2" >> /etc/ld.so.conf.d/oracle.conf
ldconfig
cd $ORACLE_HOME  
ls -lrth libclntsh*   # This will show which version of 'libclntsh' you have... --> needed for following line:

ln -s libclntsh.so.12.1 libclntsh.so

pip install cx_Oracle   # Maybe not needed but I did it anyway (only pip install cx_Oracle without above steps did not work for me...)

이제 python 스크립트가 'cx_Oracle'을 사용할 준비가 되었습니다.맛있게 드세요!

이건 내게 효과가 있었다.

python -m pip install cx_Oracle --upgrade

자세한 내용은 oracle 빠른 시작 가이드를 참조하십시오.

https://cx-oracle.readthedocs.io/en/latest/installation.html#quick-start-cx-oracle-installation

MAC 에 인스톨 하는 경우는, 다운로드한 Oracle 클라이언트의 압축을 풀고, python 스크립트를 작성한 폴더에 넣습니다.작동하기 시작합니다.

환경변수를 설정하는 것은 너무 많은 문제가 있다.그것은 나에게 효과가 있었다.

이게 도움이 됐으면 좋겠다.

감사해요.

다음의 코드로 재인스톨 해 보겠습니다.

!pip install --proxy http://username:windowspwd@10.200.72.2:8080 --upgrade --force-reinstall cx_Oracle

Python 2를 지원하는 마지막 버전인 7.3과 같은 특정 버전의 cx_Oracle을 설치해야 할 경우 다음을 수행할 수 있습니다.

python -m pip install cx_Oracle==7.3

언급URL : https://stackoverflow.com/questions/4307479/install-cx-oracle-for-python