VS Code 로 초기 환경을 세팅할 때 가상환경으로 설정하는 방법을 기록해둔다.
PyCharm으로 개발 할 경우 Virtualenv를 선택하여 진행하면 아래 과정이 자동으로 수행된다.
1. 가상환경 생성하기
Using Python Environments in Visual Studio Code
VS Code로 빈 폴더 생성 후 가상환경을 구축한다.
기본적으로 CLI 환경에서 python을 실행할 경우 전역 환경에서 실행된다.
설치되는 모든 패키지는 글로벌 환경과 모든 프로그램에 영향을 미친다. 제거도 마찬가지.
가상공간을 생성하지 않을경우 OS에 설치된 환경을 동일하게 여러 프로젝트에서 사용하게 되고, 의존성 충돌이 발생할 수 있음.
1.1 가상환경이란?
Python 가상환경은 OS에 설치된 Python 환경과 구분되는 일종의 독립된 공간
가상환경을 생성 한 경우 설치되는 모든 패키지는 해당 하위 폴더에만 설치된다.
1.2 가상환경 생성하기
VS Code 창에서 명령팔레트를 열어서 “Python: Create Environment”을 검색
단축키 : ⇧⌘P
Python 버전을 선택하면 알림이 환경 생성 진행률을 표시하고 환경 폴더가 작업 공간에 나타남
탐색창에 .venv 폴더가 생긴다.
터미널에서 직접 생성도 가능하다.
# macOS/Linux
# You may need to run sudo apt-get install python3-venv first
python3 -m venv .venv
# Windows
# You can also use py -3 -m venv .venv
python -m venv .venv
VS Code 창 오른쪽 아래 사용중인 가상환경에 대한 정보를 확인할 수 있고, 명령 팔레트에서 “Python: Select Interpreter” 을 검색하여 변경도 가능하다.
1.3 환경변수 설정하기
환경변수 설정은 아래 형태로 사용할 수 있다.
#으로 주석처리 가능
environment_variable=value 형태로 사용
workspace 폴더에 .env 파일을 생성하여 사용
변수 참조도 가능하다.
VAR1=/home/user
VAR2=${VAR1}/test
소스코드에서 환경변수 활용
# python-dotenv 설치
pip install python-dotenv
테스트 코드
import os
from dotenv import load_dotenv
load_dotenv() # take environment variables from .env.
print(os.getenv("VAR1"))
print(os.getenv("VAR2"))
2. requirements.txt로 패키지 관리
# 설치 된 패키지 리스트를 requirements.txt 파일로 생성
pip freeze > requirements.txt
# requirements.txt 파일에서 패키지 설치
pip install -r requirements.txt
npm의 package.json 처럼 라이브러리 목록과 버전을 명시해두면 다른 환경에서도 바로 개발환경 구축이 가능해진다.
3. 패키지 최신상태로 유지하기
아래 내용을 package.md 같은 파일로 저장해두고 주기적으로 최신버전 유지하기
# 유지관리
## 설치 된 패키지 리스트를 requirements.txt 파일로 생성
```bash
pip freeze > requirements.txt
```
## requirements.txt 파일에서 패키지 설치
```bash
pip install -r requirements.txt
```
## 패키지 전체 업그레이드
requirements.txt 를 열어 == 부분을 >= 로 변경
```bash
# mac 환경에서 command line 활용 시
sed -i '' -e 's/==/>=/g' requirements.txt
```
```bash
pip install -r requirements.txt --upgrade
```