programing

cx_Oracle: distutils.errors.디퓨틸스SetupError: Oracle 포함 파일을 찾을 수 없습니다.

showcode 2023. 6. 19. 21:47
반응형

cx_Oracle: distutils.errors.디퓨틸스SetupError: Oracle 포함 파일을 찾을 수 없습니다.

Linux(Linux 2.6.18-371.1.2.el5 i686)에 Python 2.5용 cx_Oracle을 설치해야 합니다.Oracle 클라이언트 10.2.0.4를 설치했습니다.

저는 다음을 시도했습니다: 1.다운로드.cx_Oracle tar.gz부터http://sourceforge.net/projects/cx-oracle/files/나열된 버전 중 python 2.5와 Oracle 클라이언트 10.2.0.4에 적합한 버전이 무엇인지 모르니 cx_Oracle-5.1.tar.gz를 사용해 보십시오.포장을 푼 tar, 포장을 푼 폴더로 이동하여 python setup.py install을 실행합니다.오류가 발생했습니다.

Traceback (most recent call last):
File "setup.py", line 187, in <module>
raise DistutilsSetupError("cannot locate Oracle include files")
distutils.errors.DistutilsSetupError: cannot locate Oracle include files

.bash_profile에서 Oracle 경로를 설정했습니다.

export ORACLE_HOME=/usr/oracle/10.2.0.4/client
export PATH=$ORACLE_HOME/bin
export LD_LIBRARY_PATH=$ORACLE_HOME/lib

이러한 오류를 어떻게 해결할 수 있을까요? cx_Oracle tar의 다른 버전이 필요할까요?

  1. pip install cx_Oracle을 실행합니다.오류 발생:

cx-Oracle 다운로드/패킹 해제

Cannot fetch index base URL https://pypi.python.org/simple/
Could not find any downloads that satisfy the requirement cx-Oracle
No distributions at all found for cx-Oracle

누가 나에게 올바른 해결책을 조언해 줄 수 있습니까?

업데이트 응답에서 제안한 후 다음 오류가 발생했습니다.

...
cx_Oracle.c:496: warning: passing argument 3 of âPyModule_AddIntConstantâ makes integer from  pointer without a cast
cx_Oracle.c:497: error: âOCI_UCBTYPE_EXITâ undeclared (first use in this function)
cx_Oracle.c:497: warning: passing argument 3 of âPyModule_AddIntConstantâ makes integer from pointer without a cast
cx_Oracle.c:498: error: âOCI_UCBTYPE_REPLACEâ undeclared (first use in this function)
cx_Oracle.c:498: warning: passing argument 3 of âPyModule_AddIntConstantâ makes integer from pointer without a cast
error: command 'gcc' failed with exit status 1

setup.py 을 실행하면 Oracle_HOME에서 이러한 폴더를 확인합니다.

possibleIncludeDirs = ["rdbms/demo", "rdbms/public", "network/public",
        "sdk/include"]

또한 인스턴트 클라이언트는 때때로 /usr/include/oracle//client에 oci.h와 같은 포함 파일을 배치합니다. 만약 ORACLE_HOME 아래에 '포함' 디렉터리가 없다면 이 디렉터리에 대한 심볼릭 링크를 만듭니다.

sudo ln -s /usr/include/oracle/11.2/client $ORACLE_HOME/include

클라이언트 SDK가 누락된 것 같습니다.

OS용 인스턴트 클라이언트 sdk를 설치해야 합니다.

http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html

  1. 설치하다oracle_client_basic

    oracle-instantclient11.2-basic-11.2.0.4.0-1.x86_64.rpm
    
  2. pip 설치 사용

    python -m pip install cx_Oracle
    
  3. ldconfig 추가 중

    1. 클라이언트 위치를 찾습니다. 예:/u01/app/oracle/product/11.2.0/client_1/lib
    2. vi /etc/ld.so.conf.d/oracle.conf

      이 위치를 추가합니다.

      /u01/app/oracle/product/11.2.0/client_1/lib
      
    3. ldconfig
  4. import cx_oracle

경로에 클라이언트 SDK가 있는지 확인합니다.

또한 이것을 .bash_rc에 추가해야 했습니다.

export DYLD_LIBRARY_PATH=$ORACLE_HOME

또한 Python 2.7은 Python 3.4에서 기본적으로 사용할 수 있는 Python.h와 함께 제공되지 않습니다.그래서 저는 또한 파이썬 개발 패키지를 설치하는 것을 제안하고 싶습니다.

yum install python-devel

그러면 문제가 해결될 것입니다.

언급URL : https://stackoverflow.com/questions/24549911/cx-oracle-distutils-errors-distutilssetuperror-cannot-locate-oracle-include-fi

반응형