python 으로 프로젝트를 진행하면 보통 가상환경(virtualenv) 으로 진행을 한다.
가상환경이란 원하는 Python 환경을 구축하기 위해 필요한 모듈만 담아 놓는 곳 라고 생각하면 된다.
가상환경을 사용하는 가장 큰 이유는 여러개의 서비스를 개발 할 경우 pip으로 설치한 패키지의 버전들이 문제가 될 수 있어서 그렇다.
그래서 pip 로 설치한 패키지를 어떻게 관리를 하는지 적으려고 한다.
# Step 1
pip freeze ( pip list )
두개의 명령어 다 상관없는데 pip 으로 설치한 list 들을 보여준다.
(venv) limjian@Jians-MacBook-Pro-13 python-utils % pip freeze
autopep8==1.6.0
.
.
.
pycodestyle==2.8.0
pycryptodome==3.14.0
toml==0.10.2
.
.
(venv) limjian@Jians-MacBook-Pro-13 python-utils % pip list
Package Version
------------ -------
autopep8 1.6.0
.
.
.
pip 21.2.4
pycodestyle 2.8.0
pycryptodome 3.14.0
setuptools 58.1.0
toml 0.10.2
.
.
# Step 2
pip freeze > requirements.txt
pip 로 설치한 package 목록의 버전들을 requirements.txt 안에 적어주는 명령어
requirements.txt 파일이 만들어지고, cat 으로 안에 내용을 보면
(venv) limjian@Jians-MacBook-Pro-13 python-utils % pip freeze > requirements.txt
(venv) limjian@Jians-MacBook-Pro-13 python-utils % cat requirements.txt
autopep8==1.6.0
.
.
.
pycodestyle==2.8.0
pycryptodome==3.14.0
toml==0.10.2
# Step 3
pip install -r requirements.txt
여러사람이 같이 작업을 할 때, repository clone 을 받았을 때 등..
requirements.txt 위 처럼 버전과 함께 명시해주면
위 명령어만 입력해 주면 pip package 들이 명시되어있는 버전에 맞게 설치가 된다.
'Language > Python' 카테고리의 다른 글
[Python] type (0) | 2022.07.01 |
---|---|
[Python] type annotation (type hint) (0) | 2022.02.27 |
[Python] AES 암호/복호화 (2) | 2022.01.31 |
[Python] Object type <class 'str'> cannot be passed to C code (AES) (0) | 2022.01.31 |
[Python] module 'time' has no attribute 'clock' (pycrypto) (0) | 2022.01.31 |