파이썬 - 의존성 라이브러리 추출하기/설치하기 (pip 사용)
- Development/Python
- 2021. 12. 11.
파이썬 라이브러리 추출하기/ 설치하기
파이썬 코드에 선언된 import 문이 있다 하더라도, 해당 라이브러리들이 자동으로 설치되지는 않는다.
즉, 로컬 개발환경에서는 개발하면서 이것저것 설치를 했다하더라도, 실행되는 환경에서 이 라이브러리는 명시적으로 설치해 주지 않으면 정상적으로 실행되지 않는다는 것을 뜻한다.
내가 어떤 패키지들을 사용했는지 어떻게 확인할 수 있을까?
또, 확보한 패키지 목록을 바탕으로 어떻게 쉽게 런타임 환경에 패키지 의존성을 주입할 수 있을까?
설치된 패키지 목록 확인하기
pip 명령어를 활용하여 현재 환경에 이미 설치된 패키지 목록을 쉽게 추출할 수 있다.
$ pip freeze
aiohttp==3.7.4.post0
async-timeout==3.0.1
attrs==21.2.0
beautifulsoup4==4.10.0
bs4==0.0.1
cassandra-driver==3.24.0
certifi==2021.10.8
chardet==4.0.0
charset-normalizer==2.0.9
click==7.1.2
discord==1.7.3
discord.py==1.7.3
geomet==0.2.1.post1
idna==3.3
jsonpickle==2.0.0
multidict==5.2.0
powernad==0.8.0
requests==2.26.0
six==1.15.0
soupsieve==2.3.1
typing_extensions==4.0.0
urllib3==1.26.7
yarl==1.7.2
커맨드 창에서 pip freeze 명령을 실행하면, 본인의 환경에 설치된 패키지 목록과 그 버전을 출력해 준다. (사람마다 다름)
이 목록을 쉽게 재사용하기 위해, 파일로 저장하자.
$ pip freeze > requirements.txt
즉, 위와 같이 출력된 패키지 정보를 requirements.txt로 저장한다.
패키지 설치하기
앞서 확보한 requirements.txt 파일을 사용하여, 패키지를 설치하려면 다음의 명령어를 실행한다.
$ pip install -r requirements.txt
테스트 결과
아래와 같이 pyenv로 새로운 virtual env를 하나 만든다.
$ pyenv virtualenv 3.8.5 venv-3.8.5
새로운 virtual env로 변경하고, 패키지 의존성 리스트를 확인한다.
$ pyenv local venv-3.8.5
$ pip freeze
(출력되는 내용 없음)
이 상태에서, 앞서 생성해 놓은 rquirements.txt를 사용하여, 의존성 패키지를 설치해 본다.
$ pip install -r requirements.txt
(설치 메시지 출력)
패키지들 설치가 완료되면, 정상적으로 설치 완료되었는지 확인 명령어로 다시 확인해 본다.
$ pip freeze
aiohttp==3.7.4.post0
async-timeout==3.0.1
attrs==21.2.0
beautifulsoup4==4.10.0
bs4==0.0.1
cassandra-driver==3.24.0
certifi==2021.10.8
chardet==4.0.0
charset-normalizer==2.0.9
click==7.1.2
discord==1.7.3
discord.py==1.7.3
geomet==0.2.1.post1
idna==3.3
jsonpickle==2.0.0
multidict==5.2.0
powernad==0.8.0
requests==2.26.0
six==1.15.0
soupsieve==2.3.1
typing-extensions==4.0.0
urllib3==1.26.7
yarl==1.7.2
requirements.txt에 입력되어 있던 라이브러리들이 정상적으로 설치된 것을 확인할 수 있다.
더 보기
'Development > Python' 카테고리의 다른 글
구글 코랩(colab) 실행시 그래프에서 한글이 깨진다면? (0) | 2024.02.18 |
---|---|
좋은 파이썬 코드 작성을 위한 필독 - 파이썬 스타일 가이드 PEP8 (0) | 2022.02.17 |
파이썬 - 문자열 포맷을 지정하는 여러가지 방법 (0) | 2021.12.08 |
네이버 검색광고 API 사용 준비하기 (0) | 2021.12.07 |
파이참(PyCharm)에서 pip 업데이트가 안될 때? (0) | 2021.12.02 |
PyMySQL - 파이썬으로 MySQL 사용하기 (0) | 2021.03.01 |
주피터 랩/주피터 노트북 - password or token 입력창 뜨면? (2) | 2021.02.24 |
구글 코랩 (Google Colab) 시작하기 (0) | 2021.01.20 |