파이썬은 로컬에서 개발할 때 여러 이슈들로 인해 직접 패키지들을 설치하기 보다는 가상환경을 구성하여 설치합니다.
python 3.3 이상의 버젼부터는 venv가 내장되어 있어서 가상환경을 위한 별도의 외부 패키지 설치가 필요 없습니다.
# 버젼 확인
> python3 --version
프로젝트 root 폴더에서 아래 명령어를 실행하면 가상환경을 위한 .venv 폴더가 생성됩니다.
> python3 -m venv .venv
(아래와 같이 virtualenv 를 이용하면 원하는 버젼으로 가상환경을 구성할 수도 있습니다.)
> virtualenv --python=python3.7 .venv
가상환경 구동을 위한 .venv 폴더가 생성된 다음에, 아래 명령어를 통하여 가상환경을 활성화(또는 비활성화)할 수 있습니다.
# 가상 환경 활성화
> source ./.venv/bin/activate
# 가상 환경 비활성화
> deactivate
가상환경이 활성화되어 있는지 확실하게 확인하는 방법은 어느 디렉토리에 있는 python 명령어를 사용하는지 확인하는 것입니다.
> which python3 ## 출력 예시 : /Users/peterchoi/IdeaProjects/{프로젝트명}/.venv/bin/python3
https://www.daleseo.com/python-venv/
pip로 python 패키지를 관리할 수 있습니다.
예시로 간단한 fastapi를 적용할 때 필요한 패키지를 설치해봅시다.
> pip install fastapi
> pip install uvicorn
위 명령어를 실행하면 fastapi, uvicorn 패키지가 설치되는데, .venv/lib 하위 폴더에 설치되는 것을 확인할 수 있습니다.
main.py
from typing import Optional
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
def read_root():
return {"Hello": "World"}
@app.get("/items/{item_id}")
def read_item(item_id: int, q: Optional[str] = None):
return {"item_id": item_id, "q": q}
FastAPI 공식문서에 나와있는 위 예제를 작성하여 아래 명령어를 실행하면 간단한 API 서버가 동작하게 됩니다!
> uvicorn main:app --reload
이 서버 구성 환경에 사용한 패키지(및 버젼)을 기록하여 다른 PC에서도 동일한 환경을 갖게 해주는 방법은 아래와 같습니다.
> pip freeze > requirements.txt
위 명령어를 실행하면 내 프로젝트에서 사용되는 패키지에 대한 정보가 기록됩니다. (마치 Node.js의 package.json 파일과 유사합니다. 파일 이름이 꼭 requirements.txt일 필요는 없지만 관례적으로 해당 이름을 사용합니다.)
다른 PC에서 해당 패키지들을 설치할 때는 아래와 같이 명령어를 실행합니다.
> pip install -r requirements.txt