최초 pip
를 통해서 프로젝트를 진행하고 패키지를 설치하였다.
pip
가 익숙해져서 처음에 poetry
사용이 어려웠지만 프로젝트 팀원들 간의 의존성 일치를 위해 poetry
를 사용해보았다.
(Invoke-WebRequest -Uri https://raw.githubusercontent.com/python-poetry/poetry/master/get-poetry.py -UseBasicParsing).Content | python -
powershell
을 열어 위의 코드를 입력해주자.
(설치가 되는 것이므로 원하는 경로로 이동 후 설치해주면 된다.)
curl -sSL https://raw.githubusercontent.com/python-poetry/poetry/master/get-poetry.py | python -
bash
를 사용하여 위의 코드를 입력해주자.
설치 후 poetry
를 실행할 수 있도록 다음 경로를 쉘 초기화 파일에 추가
export PATH=$PATH:$HOME/.poetry/bin
설치 이후 간단하게 하나의 프로젝트를 생성하여 사용방법을 알아보자.
poetry new 프로젝트명
프로젝트 생성을 원하는 경로에 해당 명령어를 입력하여 프로젝트를 생성한다.
프로젝트가 생성되면 pyproject.toml
가 생성되는데 해당 파일은 프로젝트의 의존성을 조율해주는 파일이기에 가장 중요하다.
패키지를 설치하면 자동으로 해당 파일에 입력된다.
poetry로 가상환경을 만들고 사용할 수 있다.
poetry env use 파이썬경로
원하는 버전이 있는 파이선의 경로를 직접 지정해주면 된다
( ex. C:\Users\Programs\Python\Python38\python.exe )
poetry env info
poetry shell
exit
exit
만 작성하면 되며, 꼭 종료전에 해주자.
poetry env list
poetry env remove 파이선경로
poetry new 프로젝트명
새로운 프로젝트 생성
poetry init
pyproject.toml
파일을 인터렉티브하게 만들 수 있음.
# 패키지 업데이트
poerty update
# 하나씩 지정해서 업데이트도 가능
poetry update requests toml
# 업데이트는 하지 않고 poetry.lock 만 업데이트
poerty update --lock
의존성 패키지의 버전을 업데이트하고 poetry.lock
파일을 업데이트 한다.
poetry add django
# 개발환경에서 필요한 패키지 설치
poetry add pytest factory-boy --dev
# 버전을 지정가능
poetry add django@^3.0.0
poetry add "django=3.0.0"
# 최신버전을 설치
poetry add django@latest
# 깃 저장소에 있는 패키지 설치
poetry add git+https://github.com/django/django.git
# 깃 저장소의 패키지에서 브랜치를 지정
poetry add git+https://github.com/django/django.git#stable/2.2.x
# 로컬에 디렉토리의 파일로 설치하기
poetry add ./my-package/
poetry add ./my-package/dist/my-package-0.1.0.tar.gz
poetry add ./my-package/dist/my-package-0.1.0.whl
django
패키지 설치로 예를 들었으며, 패키지 추가 후 pyproject.toml
에 추가된다.
poetry remove django
설치된 패키지 삭제
# 설치된 모든 패키지를 보여준다.
poetry show
# 개발환경용 제외하고 보여준다.
poetry show --no-dev
# 특정패키지를 지정하면 상세내용을 보여줍니다.
poetry show django
# 최신 버전을 보여준다.
poetry show --latest (-l)
# 업데이트를 해야하는 패키지들을 보여준다.
poetry show --outdate (-o)
# 의존성 트리를 보여준다.
poetry show --tree
poetry build
소스를 배포가능한 형태로 빌드한다.
poetry run python manage.py runserver
프로젝트의 virtualenv에 커맨드를 전달하여 실행시킨다.