본 글은 Ubuntu 22.04.1 LTS 환경에서 진행하였습니다.
설치가 잘 안 된다면 공식 홈페이지를 참고해주시기 바랍니다.
curl -sSL https://install.python-poetry.org | python3 -
exec $SHELL
poetry --help
가 다음과 같이 잘 작동한다면, 설치가 완료된 것입니다.# 프로젝트를 init 합니다.
# init를 사용하면 대화 형식으로 패키지를 설치할 수 있습니다.
poetry init
python = “^3.8”
은 파이썬 3.8버전보다 높은 버전은 다 허용한다는 의미입니다.# 필요한 패키지를 추가합니다.
poetry add pandas
# pyproject.toml을 출력해보면 다음과 같이 추가됨을 알 수 있습니다.
cat pyproject.toml
# local 파이썬 버전 설정
pyenv local 3.8.10
# Poetry로 가상환경 생성
poetry env use python3
# 쉘을 활성화
poetry shell
poetry install
으로 (활성화된 가상환경에) pyproject.toml에 저장된 내용에 기반해 라이브러리 설치 합니다.# pyproject.toml에 저장된 내용에 기반해 라이브러리 설치
poetry install
# 다음 명령어로 poetry.lock 파일이 생긴 것을 확인
ls
pyproject.toml
을 생성합니다# 대화 형식으로 패키지를 설치
poetry init
# path에 파이썬 프로젝트를 생성
poetry new <path>
# poetry new 로 생성한 프로젝트의 구조
.
├── poetry_test
│ └── __init__.py
├── pyproject.toml
├── README.md
└── tests
└── __init__.py
# poetry install으로 pyproject.toml에 저장된 내용에 기반해 라이브러리를 설치
poetry install
# (옵션) 개발환경의 라이브러리는 빼고 설치
poetry install --no-dev
# (옵션) 캐시를 저장하지 않습니다.
poetry install --no-cache
poetry.lock
파일을 최신화합니다(lock 파일을 삭제하고, 다시 install).# dependencies 업데이트
poerty update
# 일부 dependencies만 업데이트
poetry update pandas numpy
# 필요한 패키지를 추가
poetry add pandas
# 버전 명시
poetry add pandas@^1.0.0 # 1.0.0 이상, 2.0.0 미만
poetry add "pandas~1.0.0" # 1.0.0 이상, 1.1.0 미만
poetry add pandas==1.0.0 # 버전을 명확히 명시
poetry add "pandas>=1.0.0" # 해당하는 버전 이상(상한x)
poetry add pandas@latest # 최신 버전
# 깃 저장소에 있는 패키지 설치
poetry add git+https://github.com/sdispater/pendulum.git
# 로컬에 위치한 폴더나 파일로 설치
poetry add ./my-package/
poetry add ../my-package/dist/my-package-0.1.0.tar.gz
# (옵션) --dev or -D 옵션을 통해 Dev 환경에서만 사용할 패키지를 추가
poetry add -D pandas
xargs poetry add < requirements.txt
# 설치된 패키지 삭제
poetry remove pandas
# (옵션) --dev or -D 옵션을 통해 Dev 환경에서 패키지를 삭제
poetry remove -D pandas
# 사용가능한 모든 패키지 출력
poetry show
# --tree 옵션을 통해 패키지 의존성을 tree형태로 출력
poetry show --tree
# dev환경 제외하고 출력
poetry show --no-dev
# config 출력
poetry config --list
# config 변경
poetry config [options] [setting-key] [setting-value1] ... [setting-valueN]
poetry run python -V
poetry search pandas numpy
.lock
파일을 다른 형식으로 변환하여 내보냅니다.# -f 옵션으로 format을 지정(default: requirements.txt)하여 내보냄
poetry export -f requirements.txt --output requirements.txt
poetry env info
# 가상환경 생성
poetry env use </full/path/to/python>
# 만약 파이썬이 PATH에 잡혀있다면, 다음 명령어만 입력하면 가상환경을 생성합니다.
poetry env use python3
poetry env list
poetry env remove poetry-test-4oQtH5dM-py3.8
poetry init
나 poetry add
로 패키지를 추가할 때 작동이 멈추는 Issue가 발견되었습니다.-vvv
로 로그를 확인해보니 다음과 같이 keyring.backend 관련 로딩에서 다음으로 넘어가지 않습니다.poetry add
하면 정상적으로 동작됩니다. export PYTHON_KEYRING_BACKEND=keyring.backends.null.Keyring
# config 변경
poetry config virtualenvs.in-project true
poetry config virtualenvs.path "./.venv"
# 이후 vscode에서 사용할 가상환경 내 파이썬의 인터프리터를 선택하여 사용하면 됩니다.
# 만약, vscode에 원하는 경로의 파이썬 인터프리터가 나오지 않는다면,
# 다음 명령어를 입력하여 인터프리터 위치를 찾아 수동으로 입력하세요.
which python
Reference