본문 바로가기

Programming/Python

[Python]파이썬에 cx_oracle import 에러 해결하기

안녕하세요. 잇킹 시도르입니다.

파이썬에서 오라클 연결할 일이 있어서 검색해 보니 cx_oracle 패키지가 사용이 많더라구요.

그냥 mariaDB처럼 그냥 패키지 설치하면 되는지 알았더니, 그게 아니었습니다.

그래서 저처럼 시간 낭비를 하지 않기 위해서 cx_oracle 설치 가이드를 작성하기로 했습니다.

 

환경>
OS : 윈도우10
Anaconda Python 3.7
Package : cx_oracle

1. 저는 Anaconda Prompt에서 먼저 가상 환경을 활성화하겠습니다.

(base) C:\>activate sidorl
(sidorl) C:\>

 

2. cx_oracle을 설치합니다.

 

(sidorl) C:\>pip install cx_oracle
Collecting cx_oracle
  Downloading cx_Oracle-7.3.0-cp37-cp37m-win_amd64.whl (189 kB)
     |████████████████████████████████| 189 kB 819 kB/s
Installing collected packages: cx-oracle
Successfully installed cx-oracle-7.3.0

(sidorl) C:\>

 

3. 분명히 설치 했는데 import 에러가 발생합니다....

(sidorl) C:\>python
Python 3.7.6 (default, Jan  8 2020, 20:23:39) [MSC v.1916 64 bit (AMD64)] :: Anaconda, Inc. on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import cx_Oracle
Traceback (most recent call last):
  File "", line 1, in 
ModuleNotFoundError: No module named 'cx_Oracle'
>>>

 

설치 리스트를 확인해보면 실제 설치 되어 있습니다.

 

cx_Oracle import 시에 No_module_named 에러 발생 후 확인

 

 

 

확인해보니 cx_oracle을 사용하기 위해서는 몇가지 절차가 추가됩니다.

- 오라클 데이터베이스 설치

- 오라클 클라이언트 설치

- 환경변수 등록

크게 3가지 절차가 추가됩니다.

 

4. ORACLE 11g설치

https://sidorl.tistory.com/33

[Oracle]윈도우에서 Oracle 11g 설치하기

안녕하세요. 잇킹 시도르입니다. 오늘은 오라클 11g 설치 가이드를 작성하겠습니다. 환경 : 윈도우10 1. 오라클 11g를 해당 사이트에서 다운로드 받습니다. https://www.oracle.com/kr/database/technologies/1120..

sidorl.tistory.com

 

5. 오라클 클라이언트 다운로드 해야 합니다. 해당 사이트로 이동해주세요.

https://www.oracle.com/database/technologies/instant-client/downloads.html

Oracle Instant Client Downloads

No results found Your search did not match any results. We suggest you try the following to help find what you're looking for: Check the spelling of your keyword search. Use synonyms for the keyword you typed, for example, try “application” instead of “sof

www.oracle.com

자신의 OS에 맞는 버전을 선택해주시고

 

 

 

몇가지 버전이 있지만 이런건 기본이 정석이죠. 저는 그냥 Basig Package로 선택했습니다.

 

 

 

다운로드 받은 파일의 압축해제 경로는 원하는 곳에 하시면 됩니다.

저는 Oracle 11g를 설치했던 폴더에 압축을 풀겠습니다. (C:\oracle\instantclient_19_5)

 

 

6. 이제 환경변수를 추가해줘야 합니다. 직접 윈도우에서 등록할 수도 있지만 저는 CMD 창에서 등록하도록 하겠습니다.

 

set 명령어를 통해서 등록된 환경변수를 확인할 수 있습니다. 저는 ORACLE_HOME 환경변수가 등록되지 않았더라고요

 

▲등록된 환경변수를 확인

 

 

<ORACLE_HOME 환경변수 추가>

ORACLE_11G 설치 시에 지정한 ORACLE_HOME 경로를 넣어주면 됩니다. 저는 시스템 환경변수로 등록하겠습니다.

 

C:\Windows\system32>setx ORACLE_HOME "C:\oracle\product\11.2.0\dbhome_1" -m

성공: 지정한 값을 저장했습니다.

※참고
setx 명령어로 환경변수 등록하게 되면 영구적으로 사용할 환경변수 등록입니다.
set 명령어는 현재 창에서만 사용할 환경 변수 등록이구요.
끝에 -m을 넣으면 시스템 변수, 넣지 않으면 사용자 변수 등록입니다.

<PATH에 오라클 클라이언트 경로 추가>

5단계에 설치한 오라클 클라이언트 경로를 환경변수 Path에 추가해줍니다. 이때 기존 path의 값에 오라클 클라이언트 경로만 추가해주는 것입니다. 그러므로 %path%;추가 경로 형태로 명령을 실행해야 합니다.

%path%는 기존값을 그대로 가져간다는 의미입니다.

 

C:\>setx path "%path%;C:\oracle\instantclient_19_5" -m 

성공: 지정한 값을 저장했습니다.

C:\>

 

7. 이제 cx_oracle이 정상적으로 import가 되는 것을 확인할 수 있습니다.

 

▲import cx_Oracle이 정상 수행되어 다음 줄로 넘어갈 수 있다.

 

 

이상입니다.