Poetry

Python 프로젝트를 만들 때 의존성 관리와 가상환경 설정이 번거로운 경우가 많습니다. Poetry는 이러한 작업을 깔끔하게 정리해주는 툴로, 패키지 관리와 프로젝트 배포까지 도와주는 훌륭한 도구입니다. 아래는 프로젝트에서 Poetry를 설정하는 방법을 정리한 내용입니다.


Poetry를 사용해 프로젝트를 초기화하려면 아래 명령어를 입력합니다.

🔥 poetry init

명령어를 실행하면 pyproject.toml 파일을 생성하며, 의존성 등을 직접 입력하거나 생략할 수 있습니다.


Poetry는 기본적으로 프로젝트 외부에 가상환경을 생성합니다. 하지만 프로젝트 폴더 내부에 .venv로 가상환경을 만들고 싶다면 다음 설정을 추가합니다.

🔥 poetry config virtualenvs.in-project true

이 설정을 해두면, 프로젝트 루트 디렉토리에 .venv/ 폴더가 생성됩니다.


pyenv를 사용 중이라면, 현재 선택된 Python 버전을 Poetry에 적용할 수 있습니다.

🔥 poetry env use $(pyenv which python)

이 명령어는 pyenv가 가리키는 Python 버전을 현재 프로젝트에 설정해줍니다.


현재 프로젝트에서 사용 중인 가상환경의 경로나 정보를 확인하고 싶다면 다음 명령어를 실행합니다.

🔥 poetry env info

VS Code에서 Poetry의 가상환경을 Python 인터프리터로 설정하려면:

  1. Cmd + Shift + P 를 눌러 명령 팔레트를 열고
  2. Python: 인터프리터 선택을 검색
  3. 사용자 정의 경로 입력 옵션을 선택한 후
  4. 다음 경로를 입력합니다:
/Users/seilylook/Development/Projects/traffic-congestion-monitoring/.venv/bin/python

배포나 서버 설정 시 requirements.txt 파일이 필요한 경우가 많은데, Poetry에서는 플러그인을 사용해 이를 쉽게 생성할 수 있습니다.

먼저 pyproject.toml에 다음 설정을 추가합니다:

[tool.poetry.plugins."poetry.plugin"]
"export" = "poetry_plugin_export.plugin:ExportPlugin"

혹은 Poetry 1.8 이상에서는 아래처럼 명령어로 설정할 수 있습니다:

[tool.poetry.requires-plugins]
poetry-plugin-export = ">=1.8"

이후 아래 명령어로 requirements.txt 파일을 생성할 수 있습니다:

🔥 poetry export -f requirements.txt --output requirements.txt

pyproject.toml에 정의된 의존성들을 설치하려면 아래 명령어를 사용합니다:

🔥 poetry install

이제 Poetry를 활용하여 깔끔하고 안정적인 Python 개발 환경을 구축할 수 있습니다. 프로젝트마다 반복되는 설정을 자동화하고, 코드 배포나 협업 시에도 환경 차이로 인한 이슈를 줄일 수 있습니다.