Python 라이브러리 오프라인 설치
오프라인/폐쇄망 환경에서 특정 라이브러리를 설치하기 위해선 인터넷 연결이 가능한 외부 컴퓨터에서 다운로드를 받아와야 합니다. 간단한 명령어로 특정라이브러리에 대한 목록 및 다운로드를 진행할 수 있습니다.
- 원하는 라이브러리를 다운받는다.
$ pip install pandas
- 다운로드 목록 및 다운로드 내용을 가져올 폴더로 이동.
- 현재 설치된 라이브러리을 리스트로 만든다.
$ python pip freeze > requirements.txt
- 모듈 리스트를 다운로드 한다.
$ python pip download -r requirements.txt
- 다운로드 받은 폴더를 오프라인 서버에 옮긴다.
- 오프라인에서 파일 설치
$ python -m pip install --no-index --find-links="./" -r requirements.txt
- python -m pip install --no-index --find-links="./" pandas-1.1.2-cp38-cp38-manylinux1_x86_64.whl
- 위처럼 requirements.txt 대신에 파일명을 써주면 개별 파일이 설치된다.
bz2, _bz2 오류 해결
Pandas 를 설치하고 Import 를 하는 순간 bz2 모듈이 없거나 _bz2 모듈이 없다는 에러메세지가 나올때가 있습니다.
구글링을 통해 해결책을 찾아냈다.
해결방법은 다음과 같다.
먼저 bz2 라이브러리를 centos는 yum, ubuntu는 apt를 통해 설치해준다.
CentOS > yum install bzip2-devel
Ubuntu > apt-get install libbz2-dev
그후 Python을 다시 컴파일할 필요가 있는데 기존에 깔려 있는 버전에 맞춰서 컴파일 시켜주면 된다.
필자의 경우 Python3.8.7을 사용했기 때문에 아래와 같이 압축 파일을 받아주었다.
$ wget https://www.python.org/ftp/python/3.8.7/Python-3.8.7.tgz
-기존에 Python 설치 파일이 있다면 그것을 사용해도 좋다.
해당 압축 파일을 tar 명령어로 풀어주고 해당 경로로 들어가 명령어를 순서대로 해준다.
$ tar -zxvf Python-3.8.7.tgz
$ cd Python-3.8.7
$ ./configure --prefix=/app/python-3.8.7
$ make && make install
--prefix 를 주어 기존에 설치되어있던 Python 폴더에 설치해주면 라이브러리를 새로 설치 안해줘도 된다.
컴파일 완료 후 버전에 맞는 "_bz2.cpython-38m-x86_64-linux-gnu.so" 파일을 다운받은 뒤
/python_path/Python.3.8.7/lib/python3.8/lib/lib-dynload/ 에 넣어주면 해결이 된다.
'Python' 카테고리의 다른 글
plot 한글 깨지는 현상 해결 ( Python, Pandas, matplotlib ) (0) | 2023.11.24 |
---|---|
[python] zero width space , <200b>, <200d>, u200b 삭제 (0) | 2022.08.22 |
[ python ] Paramiko (0) | 2022.02.18 |
[Python] pysqlite3 설치 (0) | 2021.06.28 |
[Python] pyodbc 라이브러리 사용하여 Altibase 연결하기. (0) | 2021.03.12 |