[Python] 리눅스 환경에서 파이썬 postgreSQL 연동시 psycopg2모듈 libpq.so.5 오류나는 경우
Python PostgreSQL 연동시 libpq.so.5: cannot open shared object file: No such file or directory 오류
리눅스 환경에서 파이썬으로 PostgreSQL 연동 프로그램을 작성했는데 다음과 같은 오류가 발생하였습니다. 내용을 살펴보니 libpq.so.5 파일을 찾을 수 없다는 내용입니다. .so 파일은 특정 모듈이 동작하기 위해 필요한 공유 라이브러리입니다. 그런데 해당 라이브러리를 찾을 수 없으니 PostgreSQL DB 연동 모듈인 psycopg2가 동작하지 못하는 것입니다.
Traceback (most recent call last):
File "test.py", line 6, in <module>
import psycopg2.extras
File "/opt/python33/lib/python3.3/site-packages/psycopg2/__init__.py", line 50, in <module>
from psycopg2._psycopg import ( # noqa
ImportError: libpq.so.5: cannot open shared object file: No such file or directory
1단계: libpq.so.5 파일 위치 찾기
먼저 자신의 리눅스에서 libpq.so.5가 존재하는 경로를 찾습니다.
find / -name libpq.so.5
2단계: 심볼릭 링크 확인
PostgreSQL이 설치되어 있는 환경이라면 PostgreSQL 설치 경로의 lib 디렉터리하위에 심볼릭 링크 형태로 존재합니다. 실제 가리키는 파일은 libpq.so.5.x 입니다. 저의 경우에는 libpq.so.5.4 파일을 심볼릭 링크 형태로 가리키고 있네요.
cd postgreSQL 설치경로/lib
ls -l libpq.*
출력 예시:
-rw-r--r-- 1 root root 266614 2018-07-18 10:55 libpq.a
lrwxrwxrwx 1 root root 12 2018-07-18 10:55 libpq.so -> libpq.so.5.4
lrwxrwxrwx 1 root root 12 2018-07-18 10:55 libpq.so.5 -> libpq.so.5.4
-rwxr-xr-x 1 root root 176771 2018-07-18 10:55 libpq.so.5.4
3단계: 심볼릭 링크 생성 (필요한 경우)
만약 libpq.so.5.x 로 파일은 존재하는데 심볼릭 링크가 걸려있지 않는 것이라면 심볼릭 링크를 하나 생성해줍니다. 아마도 psycopg2 모듈이 libpq.so.5 파일만을 찾아다니는 것으로 예상되기 때문입니다.
ln -s libpq.so.5.4 libpq.so.5
4단계: 라이브러리 설치 (필요한 경우)
만약 libpq.so.5 가 아예 설치되어 있지 않다면 yum 명령어로 설치해줍니다.
yum install -y libpq.so.5
정상적으로 설치되었다면 /usr/lib 하위에 설치되었을 것입니다.
cd /usr/lib
ls -l libpq.*
출력 예시:
lrwxrwxrwx 1 root root 21 2018-09-10 18:46 libpq.so.5 -> /usr/lib/libpq.so.5.2
-rwxr-xr-x 1 root root 156876 2017-10-06 05:27 libpq.so.5.2
5단계: 환경변수 설정
이제 환경변수를 설정하여 .so (shared object) 파일의 위치를 알려주어야 합니다.
리눅스에서 .so 파일같은 라이브러리들의 경우 LD_LIBRARY_PATH 변수를 참조하게 되어있습니다. 따라서 LD_LIBRARY_PATH 변수에 libpq.so.5 가 있는 디렉터리 경로를 추가해줍니다.
vim ~/.bash_profile 명령어(또는 vi)로 .bash_profile을 열어줍니다. 그리고 다음과 같이 libpq.so.5.2가 있는 디렉터리 경로를 추가해주세요.
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:"/usr/psql-9.4/lib"
export LD_LIBRARY_PATH
:wq로 저장, 종료 후에 다음 명령어를 실행합니다. 이후 다시 작성한 파이썬 파일을 실행하면 오류가 해결됩니다.
source ~/.bash_profile
'Python' 카테고리의 다른 글
| [Python] 파이썬 오라클(cxOracle) 사용시 쿼리 결과 Dictionary 로 받기 (2) | 2019.03.18 |
|---|---|
| [Python] 파이썬 TabError: inconsistent use of tabs and spaces in indentation 오류 발생시 (0) | 2018.09.11 |
| [Python] 쿼리시에 TypeError: 'int' object does not support indexing 오류 (0) | 2018.09.10 |
| [Python] Windows 환경에서 파이썬 pymssql 설치하기 (0) | 2018.08.30 |
| [Python] 파이썬 pip로 pymmssql 설치시 C++ Build Tools 오류 (6) | 2018.08.30 |
도로락
WriterIT, 프로그래밍, 컴퓨터 활용 정보 등을 위한 블로그