Python 모듈 "cx_Oracle" 모듈을 찾을 수 없습니다.
원격 Oracle 데이터베이스 서버에 연결하기 위해 최근에 컴퓨터에 cx_Oracle 모듈을 설치했습니다.(당사에는 Oracle 클라이언트가 없습니다.)
- 파이썬: 버전 2.7 x86
- 오라클: 버전 11.1.X x64
- Cx_Oracle:버전-5.1.2-11g.win32-py2.7
그런 다음 스크립트를 실행할 때마다 스크립트가 실패하고 다음 메시지가 인쇄됩니다.
가져오기 오류: DLL 로드 실패:지정한 모듈을 찾을 수 없습니다.
Here에서 관련 게시물을 발견했는데, 어쨌든 python 스크립트가 호출되는 쪽에 Oracle 클라이언트가 있어야 하는지 궁금합니다.
누가 저 좀 도와주실 수 있나요?잘 부탁드립니다.
# - This import requires appropriate oraocciXX.dll to be available in PATH (on windows)
# (Probably LD_LIBRARY_PATH or LD_LIBRARY_PATH64 on POSIX)
# where XX is the oracle DB version, e.g. oraocci11.dll for Oracle 11g.
# - This dll is part of the Oracle Instant client pkg available here:
# http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html
# - Also ensure that python, cx_Oracle and Oracle Client are of same arch (32 or 64-bit)
#
import cx_Oracle
다음에 대한 아치(32비트 또는 64비트)를 찾을 수 있습니다.
- 명령행에서 대화형 모드로 python을 실행함으로써 python.
- cx_Oracle: 다운로드한 파일의 이름을 확인합니다.
- Oracle 클라이언트:
- 클라이언트 패키지의 일부인 sqlplus를 실행합니다.
- 작업 관리자를 시작하고 sqlplus 여부를 확인합니다.exe 옆에 "*32"가 있음(=32비트) 또는 없음(=64비트)
- 경우 sqlplus를 합니다.
dumpbin /headers oraocciXX.dll
- POSIX를 사용하고 있다면 이미 알고 있을 것입니다.
file oraocciXX.so
마지막으로, 만약 당신이 여전히 이해하지 못한다면, 여기는 정말 더미를 위한 지침입니다.
- 32개의 전의버 python, cx_Oracle 및 Oracle Instant Client 치설했니합비인확다지는트를▁32비,다니확▁c합인▁oracle▁python.이들은 64비트일 수도 있지만 3개 모두에 대해 동일해야 합니다.혼합 및 일치시킬 수 없습니다.링크:
- Oracle Instant Client가 설치되어 있다고 가정합니다.
C:\ProgFiles\OraClient\11_2 - cx_오라클
- 파이썬
- Oracle Instant Client가 설치되어 있다고 가정합니다.
- Windows:
set PATH=%PATH%;C:\ProgFiles\OraClient\11_2
- POSIX(리눅스/유닉스/Solaris...) <---------------------------------------------------------------------------
export LD_LIBRARY_PATH=/path/to/your/32bit/oraocciXX.so- 64µ트)
export LD_LIBRARY_PATH64=/path/to/your/64bit/oraocciXX.so
- 려달을
path-to-python/python.exe -c "import cx_Oracle"설치가 작동하는지 여부를 테스트합니다.- 인쇄가 되면
- 아무것도 없습니다. 그러면 성공적입니다.
ImportError: DLL load failed: The specified module could not be found수 없습니다. 또는 aocciXX를 찾을 수 없습니다.변수를 올바르게 설정합니다.ImportError: DLL load failed: %1 is not a valid Win32 application불일치가 .32/64 비트가 일치하지 않습니다.
예, Oracle 클라이언트가 설치되어 있어야 합니다.
"cx_Oracle을 사용하려면 Oracle 클라이언트(또는 서버)를 설치해야 합니다.전체 클라이언트 설치와 함께 제공되는 도구가 필요하지 않은 경우 Instant Client를 설치하는 것이 좋습니다."
인스턴트 클라이언트에 대한 편집 링크: http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html
며칠 동안 이 문제를 해결하려고 노력한 후에, 저는 그것을 알게 되었습니다.set PATH=%PATH%:<insert Oracle home here>날 위해 속임수를 쓰지 않았습니다.Windows XP 시스템 속성으로 이동하여 Oracle 홈을 '시스템 변수' 아래의 '경로' 변수에 추가해야 했습니다.
아직 코멘트할 수 없습니다 :-( 하지만 위의 고유한 단계를 위해 .exe 및 .dll의 권한을 확인하여 실행 가능한지 확인해보시겠습니까?
그래서 제가 그것을 작동시키기 위해 필요한 단계들이 있었습니다.
여기서 인스턴트 클라이언트의 압축을 풉니다.http://www.oracle.com/technetwork/topics/winx64soft-089540.html
chmod +x *.exe *.dll(나는 cygwin을 사용하고 있습니다.
cygwin을 사용하여 pip을 통해 cx_oracle을 설치할 수 없었습니다.
그래서 표준 dist python(비 cygwin)을 사용해야 했고 윈도우 설치 프로그램을 통해 cx_oracle을 설치했습니다.
또한 윈도우즈 경로에 f:/opt/instantclient_12_1(Oracle 인스턴트 클라이언트를 설치한 위치)을 추가해야 했습니다(시스템 ->고급 시스템 속성 ->환경 변수 ->시스템 변수를 통해).
언급URL : https://stackoverflow.com/questions/12538238/python-module-cx-oracle-module-could-not-be-found
'programing' 카테고리의 다른 글
| Mysql 목록 표 및 크기 - 크기순 정렬 (0) | 2023.08.28 |
|---|---|
| VBA에서 ADODB 레코드 세트 전체 복사 또는 복제 (0) | 2023.08.09 |
| jquery를 사용하여 페이지의 특정 위치로 스크롤하려면 어떻게 해야 합니까? (0) | 2023.08.08 |
| 경고:여러 병합 기준이 탐지되었습니다.표시된 커밋 목록이 불완전할 수 있습니다. (0) | 2023.08.08 |
| jQuery의 입력 필드에서 포커스를 제거하는 방법은 무엇입니까? (0) | 2023.08.08 |