이 문서는 파이썬을 처음 다루는 분들도 어렵지 않게 따라올 수 있도록, 파이썬 버전과 패키지를 관리하는 대표적인 도구들의 개념부터 실제 사용법까지 하나하나 풀어서 설명합니다. 명령어를 단순히 나열하는 대신, 왜 그런 명령어가 필요한지, 각 명령어가 실제로 무슨 일을 하는지 이야기하듯 정리했습니다.
파이썬 개발 환경을 다루는 도구는 크게 두 갈래로 나눌 수 있습니다. 하나는 파이썬 버전 자체를 여러 개 설치하고 골라 쓰게 해 주는 도구(pyenv)이고, 다른 하나는 프로젝트마다 필요한 라이브러리(패키지)와 가상환경을 관리해 주는 도구(uv, poetry, pdm, conda)입니다. 이 문서에서는 먼저 파이썬 버전 관리의 기본인 pyenv를 충분히 익힌 다음, 요즘 널리 쓰이는 패키지·프로젝트 관리 도구들을 하나씩 살펴봅니다. 각 도구가 어떤 상황에 어울리는지, 그리고 서로 어떻게 함께 쓸 수 있는지도 마지막에 정리해 두었습니다.
🔥 표시는 최근 인기가 특히 빠르게 높아지고 있는 도구입니다.
- 어떤 도구를 골라야 할까요? (먼저 읽어 보세요)
- pyenv — 파이썬 버전 관리
- 버전 관리와 패키지 관리는 어떻게 다른가요?
- uv — 가장 빠른 올인원 도구 🔥
- poetry — 의존성 관리의 대중적 표준
- pdm — 표준을 앞서 따르는 현대적 도구
- conda — 데이터·과학 분야의 환경 관리자
본격적으로 각 도구를 하나씩 살펴보기 전에, 전체 그림을 먼저 그려 보겠습니다. 무엇을 써야 할지 고민된다면 이 표부터 참고하세요. 도구 이름을 누르면 해당 도구의 자세한 설명으로 바로 이동합니다.
| 도구 | 파이썬 버전 설치 | 패키지·가상환경 관리 | 특히 어울리는 상황 |
|---|---|---|---|
| pyenv | O | X | 여러 파이썬 버전을 오가야 할 때 |
| uv 🔥 | O | O | 빠르고 통합된 최신 환경을 원할 때 |
| poetry | X | O | 자료가 풍부한 대중적 표준을 원할 때 |
| pdm | X | O | 최신 표준을 앞서 따르고 싶을 때 |
| conda | O | O | 데이터·과학, 복잡한 라이브러리를 다룰 때 |
상황별로 권해 드리면 이렇습니다.
- 이제 막 파이썬을 시작한다면 — 하나로 대부분을 해결할 수 있는 uv 🔥 로 시작하는 것이 요즘 가장 무난합니다. 빠르고, 배울 명령도 적습니다.
- 여러 파이썬 버전을 세밀하게 오가야 한다면 — pyenv로 버전을 관리하고, 그 위에 uv나 poetry를 얹어 패키지를 다루는 조합이 안정적입니다.
- 기존에 poetry를 쓰는 프로젝트에 참여한다면 — 굳이 바꾸지 말고 그 프로젝트가 쓰는 poetry를 그대로 따르면 됩니다.
- 데이터 분석이나 머신러닝을 한다면 — 복잡한 라이브러리를 손쉽게 깔아 주는 conda가 여전히 강력한 선택입니다.
정답이 하나로 정해져 있는 것은 아닙니다. 함께 일하는 팀이 쓰는 도구를 따르는 것이 가장 우선이고, 새로 시작하는 개인 프로젝트라면 위 안내를 참고해 마음에 드는 것을 골라 익혀 두면 충분합니다. 각 도구의 자세한 사용법은 아래에서 하나씩 이어집니다.
파이썬으로 여러 프로젝트를 하다 보면 곧 한 가지 골치 아픈 문제를 마주하게 됩니다. 어떤 프로젝트는 파이썬 3.8에서만 정상적으로 돌아가고, 다른 프로젝트는 3.12의 새로운 기능을 써야 하는 식으로, 프로젝트마다 필요한 파이썬 버전이 다르다는 점입니다. 컴퓨터에 파이썬을 하나만 설치해 두면 이런 상황에서 이러지도 저러지도 못하게 됩니다. 게다가 운영체제가 기본으로 깔아 놓은 파이썬을 함부로 건드리면 시스템 자체가 불안정해질 수도 있습니다.
pyenv는 바로 이 문제를 해결하기 위해 태어난 도구입니다. 한 컴퓨터 안에 여러 버전의 파이썬을 나란히 설치해 두고, 상황에 따라 원하는 버전을 자유롭게 골라 쓸 수 있게 해 줍니다. 전체 시스템에서 쓸 기본 버전을 정할 수도 있고, 특정 폴더에 들어가면 자동으로 그 폴더에 맞는 버전으로 바뀌게 할 수도 있습니다. 이 모든 과정이 시스템에 원래 깔려 있던 파이썬을 전혀 건드리지 않고 이루어지기 때문에 안전합니다.
pyenv가 이런 마법 같은 일을 해내는 원리는 "shim"이라는 개념에 있습니다. 여러분이 python이라고 입력하면, 실제 파이썬이 곧바로 실행되는 것이 아니라 pyenv가 미리 심어 둔 작은 중간 다리(shim)를 먼저 거치게 됩니다. 이 중간 다리가 "지금 여기서는 어떤 버전을 써야 하지?"를 판단한 뒤, 알맞은 파이썬으로 연결해 주는 것입니다. 원리는 이 정도만 이해해도 사용하는 데는 충분합니다.
macOS에서는 Homebrew를 이용하는 것이 가장 간편합니다. 터미널을 열고 아래 명령을 실행하면 pyenv가 설치됩니다.
brew install pyenv만약 Homebrew가 아직 없다면, 먼저 brew.sh에서 Homebrew를 설치한 뒤 위 명령을 실행하면 됩니다.
리눅스에서는 공식에서 제공하는 자동 설치 스크립트를 사용하는 방법이 가장 무난합니다.
curl https://pyenv.run | bash이 스크립트는 pyenv와 함께 자주 쓰이는 몇 가지 플러그인(예를 들어 가상환경을 관리해 주는 pyenv-virtualenv)까지 한 번에 설치해 줍니다.
파이썬을 새로 빌드하려면 몇 가지 개발용 라이브러리가 미리 깔려 있어야 합니다. 우분투나 데비안 계열이라면 아래처럼 준비해 두는 것이 좋습니다.
sudo apt update
sudo apt install -y make build-essential libssl-dev zlib1g-dev \
libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm \
libncursesw5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev \
libffi-dev liblzma-dev이 라이브러리들은 파이썬이 압축, 암호화, 데이터베이스 같은 기능을 제대로 갖추고 설치되도록 도와줍니다. 빠뜨리면 나중에 특정 기능이 동작하지 않는 파이썬이 설치될 수 있으니 미리 챙겨 두는 편이 좋습니다.
pyenv를 설치한 것만으로는 아직 절반만 끝난 상태입니다. 터미널이 pyenv를 인식하고 앞서 이야기한 shim을 거치도록, 셸 설정 파일에 몇 줄을 추가해 주어야 합니다. 이 단계를 건너뛰면 pyenv가 설치되어 있어도 제대로 동작하지 않으니 반드시 진행해야 합니다.
여러분이 쓰는 셸이 무엇인지에 따라 수정할 파일이 다릅니다. 요즘 macOS의 기본 셸인 zsh를 쓴다면 ~/.zshrc 파일에, 전통적인 bash를 쓴다면 ~/.bashrc(macOS에서는 ~/.bash_profile)에 아래 내용을 추가합니다.
export PYENV_ROOT="$HOME/.pyenv"
[[ -d$PYENV_ROOT/bin ]] &&export PATH="$PYENV_ROOT/bin:$PATH"eval"$(pyenv init - zsh)"bash를 쓴다면 마지막 줄을 eval "$(pyenv init - bash)"로 바꿔 주면 됩니다.
이 세 줄이 하는 일을 간단히 풀어 보면 이렇습니다. 첫 줄은 pyenv가 파일들을 보관하는 위치를 알려 주고, 둘째 줄은 그 위치를 터미널이 명령어를 찾는 경로에 추가하며, 셋째 줄이 바로 shim을 활성화하는 핵심 부분입니다.
파일을 수정한 뒤에는 터미널을 완전히 껐다 켜거나, 아래 명령으로 설정을 다시 불러와야 변경 사항이 반영됩니다.
source~/.zshrc제대로 설치되었는지 확인하려면 다음 명령을 실행해 봅니다. 버전 번호가 출력되면 성공입니다.
pyenv --versionpyenv로 설치할 수 있는 파이썬 버전은 수백 가지가 넘습니다. 표준 파이썬뿐 아니라 PyPy, Anaconda 같은 다른 종류의 파이썬도 포함됩니다. 어떤 버전들이 있는지 전체 목록을 보려면 다음과 같이 입력합니다.
pyenv install --list목록이 무척 길기 때문에, 보통은 원하는 버전만 걸러서 보는 편이 편합니다. 예를 들어 3.12로 시작하는 버전만 보고 싶다면 이렇게 합니다.
pyenv install --list | grep 3.12원하는 버전을 찾았다면, 그 번호를 그대로 적어 설치합니다.
pyenv install 3.12.3이 명령을 실행하면 pyenv가 해당 버전의 소스 코드를 내려받아 여러분의 컴퓨터에서 직접 빌드합니다. 그래서 설치에 몇 분 정도 걸릴 수 있으니 느긋하게 기다리면 됩니다. 정확한 버전 번호를 일일이 적기 번거롭다면, 최신 안정 버전을 자동으로 골라 설치하도록 아래처럼 대략적으로 지정할 수도 있습니다.
pyenv install 3.12지금까지 설치한 버전들의 목록은 다음 명령으로 확인할 수 있습니다. 현재 활성화되어 있는 버전 앞에는 별표(*)가 붙어 표시됩니다.
pyenv versions지금 이 순간 실제로 어떤 버전이 쓰이고 있는지만 간단히 알고 싶다면 이렇게 합니다.
pyenv version더 이상 쓰지 않는 버전은 지워서 공간을 정리할 수 있습니다.
pyenv uninstall 3.12.3pyenv를 진짜 유용하게 만들어 주는 부분이 바로 여기입니다. pyenv는 상황에 따라 세 가지 층위로 파이썬 버전을 지정할 수 있고, 이들 사이에는 명확한 우선순위가 있습니다. 이 개념만 확실히 잡으면 pyenv의 대부분을 이해한 것입니다.
전역 버전은 특별히 다른 지정이 없을 때 컴퓨터 전체에서 기본으로 쓰이는 파이썬입니다. 평소에 늘 쓰고 싶은 버전을 하나 정해 두는 것이라고 생각하면 됩니다.
pyenv global 3.12.3이렇게 정해 두면 어느 폴더에 있든, 별도 설정이 없는 한 항상 3.12.3이 실행됩니다.
지역 버전은 특정 프로젝트 폴더에서만 적용되는 버전입니다. pyenv의 가장 빛나는 기능이라고 할 수 있습니다. 프로젝트 폴더 안에서 아래 명령을 실행해 보세요.
cd my-project
pyenv local 3.10.13그러면 그 폴더 안에 .python-version이라는 작은 파일이 하나 생깁니다. 이 파일에는 3.10.13이라는 버전 정보가 적혀 있습니다. 이제부터 여러분이 이 폴더(그리고 그 하위 폴더)에 들어오기만 하면 pyenv가 이 파일을 알아보고 자동으로 파이썬 버전을 3.10.13으로 바꿔 줍니다. 폴더를 벗어나면 다시 원래의 전역 버전으로 돌아옵니다. 아무런 명령을 따로 입력하지 않아도 폴더를 오갈 때마다 알맞은 버전으로 알아서 전환되는 것입니다.
이 .python-version 파일을 프로젝트와 함께 Git 저장소에 올려 두면, 같은 프로젝트를 내려받은 동료들도 자동으로 같은 파이썬 버전을 쓰게 됩니다. 팀원끼리 "너는 몇 버전 써?" 하고 물어볼 필요가 사라지는 셈입니다.
셸 버전은 지금 열려 있는 이 터미널 창에서만, 그리고 이 창을 닫기 전까지만 잠깐 적용되는 버전입니다. 잠시 다른 버전으로 뭔가를 시험해 보고 싶을 때 유용합니다.
pyenv shell 3.9.18이 설정은 터미널을 닫으면 사라집니다. 설정을 해제하고 싶다면 아래 명령을 쓰면 됩니다.
pyenv shell --unset세 가지가 동시에 지정되어 있다면 pyenv는 다음 순서로 판단합니다. 좁은 범위일수록 우선순위가 높다고 기억하면 쉽습니다.
- 셸 버전 (
pyenv shell) — 가장 우선합니다. - 지역 버전 (
.python-version파일) - 전역 버전 (
pyenv global) — 가장 마지막에 적용됩니다.
즉, 특정 폴더에 지역 버전이 정해져 있으면 전역 버전보다 그것을 먼저 따르고, 그 터미널에서 셸 버전까지 지정했다면 그것이 모든 것을 제칩니다.
파이썬 버전을 고르는 것과 별개로, 프로젝트마다 설치하는 라이브러리(패키지)들도 서로 섞이지 않게 분리해 두는 것이 좋습니다. 이를 위한 것이 "가상환경"입니다. 같은 파이썬 3.12를 쓰더라도, A 프로젝트에는 어떤 라이브러리의 1.0 버전을, B 프로젝트에는 2.0 버전을 설치하는 식으로 각각 독립된 공간을 만들어 주는 것입니다.
pyenv에는 이 가상환경까지 통합해서 관리해 주는 pyenv-virtualenv라는 플러그인이 있습니다. 리눅스에서 pyenv.run 스크립트로 설치했다면 이미 함께 깔려 있고, macOS에서는 아래처럼 따로 설치할 수 있습니다.
brew install pyenv-virtualenv설치 후에는 셸 설정 파일(~/.zshrc 등)에 아래 한 줄을 추가하고 터미널을 다시 시작해야 합니다.
eval"$(pyenv virtualenv-init -)"가상환경을 만들 때는 어떤 파이썬 버전을 기반으로 할지와 가상환경의 이름을 함께 적어 줍니다.
pyenv virtualenv 3.12.3 my-project-env이렇게 만든 가상환경은 파이썬 버전과 똑같은 방식으로 골라 쓸 수 있습니다. 프로젝트 폴더에서 아래처럼 지역 버전으로 가상환경을 지정해 두면, 그 폴더에 들어올 때마다 가상환경이 자동으로 켜지고 나갈 때 자동으로 꺼집니다.
pyenv local my-project-env만들어 둔 가상환경의 목록을 보거나 필요 없어진 것을 지우려면 다음 명령을 씁니다.
pyenv virtualenvs
pyenv uninstall my-project-env가끔 파이썬을 새로 설치했는데도 명령어가 인식되지 않거나 뭔가 어긋난 느낌이 들 때가 있습니다. 이럴 때는 shim을 다시 정리해 주면 해결되는 경우가 많습니다.
pyenv rehash특히 pip 등으로 새로운 명령행 도구를 설치한 직후에 그 명령이 곧바로 실행되지 않는다면, 이 명령을 한 번 실행해 주면 됩니다.
특정 명령어가 실제로 어느 파이썬을 가리키고 있는지 궁금하다면 아래 명령이 유용합니다. pyenv가 지금 어떤 실행 파일로 연결해 주고 있는지 그 실제 경로를 알려 줍니다.
pyenv which python
pyenv which pippyenv 자체를 최신 상태로 업데이트하려면, Homebrew로 설치한 경우 아래처럼 하면 됩니다.
brew upgrade pyenv명령어를 입력했더니 pyenv: command not found가 나옵니다.
셸 설정 파일에 pyenv 관련 줄을 추가하지 않았거나, 추가한 뒤 터미널을 다시 시작하지 않았을 가능성이 큽니다. 앞의 "셸 설정" 부분을 다시 확인하고 source ~/.zshrc를 실행해 보세요.
pyenv global로 버전을 바꿨는데 python --version은 여전히 옛날 버전을 보여 줍니다.
지금 있는 폴더에 .python-version 파일이 있어서 지역 버전이 전역 버전을 덮어쓰고 있는 것일 수 있습니다. pyenv version을 실행하면 지금 어떤 버전이 왜 쓰이고 있는지 그 출처까지 알려 주므로 원인을 찾는 데 도움이 됩니다.
파이썬 설치 중에 오류가 나면서 빌드가 실패합니다. 파이썬을 빌드하는 데 필요한 개발용 라이브러리가 빠져 있을 때 흔히 생기는 문제입니다. 앞의 설치 항목에서 소개한 준비용 라이브러리들을 먼저 설치한 뒤 다시 시도해 보세요.
| 하고 싶은 일 | 명령어 |
|---|---|
| 설치 가능한 버전 목록 보기 | pyenv install --list |
| 특정 버전 설치 | pyenv install 3.12.3 |
| 설치된 버전 목록 | pyenv versions |
| 현재 쓰는 버전 확인 | pyenv version |
| 전역 기본 버전 지정 | pyenv global 3.12.3 |
| 현재 폴더 버전 지정 | pyenv local 3.10.13 |
| 이 터미널만 버전 지정 | pyenv shell 3.9.18 |
| 버전 삭제 | pyenv uninstall 3.12.3 |
| 가상환경 만들기 | pyenv virtualenv 3.12.3 이름 |
| shim 다시 정리 | pyenv rehash |
| 실제 실행 경로 확인 | pyenv which python |
이 정도만 익혀 두어도 일상적인 파이썬 개발에서 버전 관리로 곤란할 일은 거의 없을 것입니다. 처음에는 전역과 지역 버전의 개념만 확실히 잡고, 필요해지면 가상환경으로 넓혀 가는 순서로 익히기를 권합니다.
여기까지 pyenv로 "파이썬 버전"을 다루는 법을 익혔습니다. 그런데 실제로 프로젝트를 진행하다 보면 버전 못지않게 중요한 것이 하나 더 있습니다. 바로 프로젝트가 사용하는 라이브러리(패키지)들을 관리하는 일입니다.
예를 들어 어떤 웹 프로젝트는 Django라는 라이브러리를, 데이터 분석 프로젝트는 pandas와 numpy를 필요로 합니다. 이 라이브러리들을 컴퓨터 한 곳에 몽땅 설치해 버리면, A 프로젝트가 쓰는 라이브러리의 1.0 버전과 B 프로젝트가 쓰는 2.0 버전이 서로 충돌하면서 둘 다 망가지는 일이 생깁니다. 그래서 프로젝트마다 라이브러리를 담아 두는 독립된 공간, 즉 "가상환경"을 따로 만들고, 어떤 라이브러리의 어떤 버전을 쓰는지 목록으로 기록해 두어야 합니다.
이 역할을 나누어 정리하면 다음과 같습니다.
- 파이썬 버전 관리 — 파이썬 3.10을 쓸지 3.12를 쓸지 정하는 일. → pyenv의 영역
- 패키지·의존성 관리 — 어떤 라이브러리를 어떤 버전으로 설치하고, 가상환경을 어떻게 꾸릴지 정하는 일. → uv, poetry, pdm, conda의 영역
전통적으로는 파이썬에 기본으로 들어 있는 pip(라이브러리 설치)와 venv(가상환경 생성)를 직접 조합해서 이 일을 해 왔습니다. 하지만 이 방식은 손이 많이 가고, 팀원끼리 똑같은 환경을 재현하기가 까다롭다는 아쉬움이 있었습니다. 그래서 이 과정을 훨씬 편하고 정확하게 만들어 주는 도구들이 등장했는데, 그것이 바로 지금부터 살펴볼 uv, poetry, pdm, conda입니다.
여기서 중요한 점 하나. 이 도구들은 pyenv를 대체하는 것이 아니라 함께 쓰는 경우가 많습니다. pyenv로 파이썬 버전을 깔아 두고, 그 위에서 poetry나 uv로 패키지를 관리하는 식입니다. (다만 uv와 conda는 파이썬 버전 설치까지 스스로 해낼 수 있어서, 경우에 따라 pyenv 없이도 쓸 수 있습니다. 이 부분은 각 도구 설명에서 짚겠습니다.)
uv는 비교적 최근에 등장했지만 순식간에 큰 인기를 얻은 도구입니다. Rust라는 언어로 만들어져서 속도가 매우 빠른 것이 가장 큰 특징입니다. 기존 도구로 몇 분씩 걸리던 라이브러리 설치가 uv에서는 몇 초 만에 끝나는 경우도 흔합니다.
또 하나의 매력은 "올인원"이라는 점입니다. 파이썬 버전 설치, 가상환경 생성, 패키지 설치, 프로젝트 관리를 uv 하나로 거의 다 할 수 있습니다. 앞서 이야기한 pyenv, pip, venv, poetry가 나눠서 하던 일을 uv 하나로 통합한 셈입니다. 그래서 새로 파이썬을 시작하는 분이라면 uv부터 익히는 것도 좋은 선택입니다.
macOS나 리눅스에서는 공식 설치 스크립트를 실행하는 것이 간편합니다.
curl -LsSf https://astral.sh/uv/install.sh | shHomebrew를 쓴다면 아래처럼 설치할 수도 있습니다.
brew install uv설치가 끝나면 터미널을 다시 시작한 뒤, 아래 명령으로 잘 설치되었는지 확인합니다.
uv --versionuv는 파이썬 자체도 설치할 수 있습니다. 이 점에서 pyenv의 역할까지 겸할 수 있습니다.
uv python install 3.12 # 특정 파이썬 버전 설치
uv python list # 설치했거나 설치 가능한 버전 목록 보기새 프로젝트를 시작할 때는 아래처럼 폴더를 만들며 초기 구성을 잡아 줍니다.
uv init my-project
cd my-project그러면 프로젝트 정보를 담는 pyproject.toml 파일이 만들어집니다. 이제 이 프로젝트에 라이브러리를 추가할 때는 add를 씁니다.
uv add requests
uv add "django>=5.0"uv는 이때 가상환경을 알아서 만들어 주고, 어떤 라이브러리의 어떤 버전을 설치했는지 uv.lock이라는 파일에 정확히 기록해 둡니다. 이 잠금(lock) 파일 덕분에 다른 사람이 같은 프로젝트를 받아도 완전히 똑같은 환경을 재현할 수 있습니다. 라이브러리를 빼고 싶다면 remove를 씁니다.
uv remove requests다른 사람이 만든 프로젝트를 내려받아 그 환경을 그대로 갖추고 싶다면, 아래 한 줄이면 됩니다. pyproject.toml과 uv.lock을 보고 필요한 것을 전부 설치해 줍니다.
uv sync프로젝트의 가상환경 안에서 파이썬이나 명령을 실행할 때는 앞에 uv run을 붙입니다. 가상환경을 따로 켜고 끄는 수고 없이 알아서 그 환경에서 실행됩니다.
uv run python main.py
uv run pytest설치까지는 필요 없고 잠깐 한 번만 실행하고 싶은 명령행 도구가 있다면 uvx가 편리합니다. 예를 들어 코드 정리 도구인 ruff를 설치 없이 바로 써 볼 수 있습니다.
uvx ruff check .| 하고 싶은 일 | 명령어 |
|---|---|
| 파이썬 버전 설치 | uv python install 3.12 |
| 새 프로젝트 시작 | uv init my-project |
| 라이브러리 추가 | uv add requests |
| 라이브러리 제거 | uv remove requests |
| 프로젝트 환경 재현 | uv sync |
| 가상환경에서 실행 | uv run python main.py |
| 도구 일회성 실행 | uvx ruff check . |
poetry는 uv가 등장하기 전부터 파이썬 패키지·의존성 관리의 대표 주자로 널리 쓰여 온 도구입니다. 지금도 많은 프로젝트가 poetry를 사용하고 있어, 관련 자료와 사용 경험이 풍부하다는 것이 큰 장점입니다.
poetry는 프로젝트의 라이브러리 목록을 pyproject.toml에 관리하고, 정확한 설치 버전은 poetry.lock 파일에 기록해 둡니다. 가상환경 생성과 라이브러리 설치를 매끄럽게 이어 주며, 나중에 다른 사람에게 배포할 라이브러리를 만들어 올리는 기능까지 갖추고 있습니다. 다만 파이썬 버전 자체를 설치하지는 못하므로, 원하는 파이썬 버전은 pyenv 같은 도구로 미리 준비해 두고 함께 쓰는 것이 일반적입니다.
poetry는 공식에서 제공하는 설치 스크립트로 설치하는 것을 권장합니다.
curl -sSL https://install.python-poetry.org | python3 -설치 후 아래 명령으로 확인합니다.
poetry --version새 프로젝트를 시작하려면 아래처럼 합니다.
poetry new my-project
cd my-project이미 있는 폴더를 poetry 프로젝트로 만들고 싶다면 그 폴더에서 poetry init을 실행해 안내에 따라 설정하면 됩니다. 라이브러리를 추가하고 제거하는 명령은 직관적입니다.
poetry add requests
poetry add "django>=5.0"
poetry remove requestspoetry는 프로젝트마다 가상환경을 알아서 만들어 관리합니다. 그 가상환경 안에서 명령을 실행할 때는 앞에 poetry run을 붙입니다.
poetry run python main.py
poetry run pytest가상환경을 아예 활성화된 상태로 들어가고 싶다면 아래 명령으로 그 환경의 셸을 열 수 있습니다.
poetry shell다른 사람이 만든 poetry 프로젝트를 내려받았다면, 아래 한 줄로 필요한 라이브러리를 poetry.lock에 기록된 그대로 전부 설치할 수 있습니다.
poetry install원하는 파이썬 버전을 pyenv로 준비해 둔 상태에서, poetry에게 그 버전을 쓰라고 알려 줄 수 있습니다.
pyenv local 3.12.3 # 이 폴더에서 파이썬 3.12.3을 쓰도록 지정
poetry env use 3.12.3 # poetry가 그 버전으로 가상환경을 만들도록 지정| 하고 싶은 일 | 명령어 |
|---|---|
| 새 프로젝트 시작 | poetry new my-project |
| 기존 폴더를 프로젝트로 | poetry init |
| 라이브러리 추가 | poetry add requests |
| 라이브러리 제거 | poetry remove requests |
| 프로젝트 환경 재현 | poetry install |
| 가상환경에서 실행 | poetry run python main.py |
| 사용할 파이썬 지정 | poetry env use 3.12.3 |
pdm은 poetry와 성격이 비슷한 패키지·의존성 관리 도구입니다. 가장 큰 특징은 파이썬 커뮤니티가 정한 공식 표준(pyproject.toml을 중심으로 한 최신 규격)을 충실하고 발 빠르게 따른다는 점입니다. 표준을 잘 지키기 때문에 다른 도구들과 잘 어울리고, 특별한 설정 없이도 여러 방식과 호환된다는 장점이 있습니다.
pdm 역시 라이브러리 목록을 pyproject.toml에, 정확한 설치 정보를 pdm.lock에 기록해 관리합니다. 사용법은 poetry나 uv와 상당히 닮아서, 앞의 내용을 익혔다면 어렵지 않게 쓸 수 있습니다.
pdm도 공식 설치 스크립트가 있습니다.
curl -sSL https://pdm-project.org/install-pdm.py | python3 -Homebrew를 쓴다면 아래도 가능합니다.
brew install pdm설치 후 확인은 다음과 같습니다.
pdm --version새 프로젝트나 기존 폴더에서 아래 명령으로 초기 설정을 진행합니다. 안내 질문에 답하면 pyproject.toml이 만들어집니다.
pdm init라이브러리를 다루는 명령은 다른 도구들과 비슷합니다.
pdm add requests
pdm remove requests프로젝트의 가상환경 안에서 명령을 실행할 때는 pdm run을 씁니다.
pdm run python main.py다른 사람의 pdm 프로젝트를 내려받아 환경을 그대로 갖추려면 아래 명령을 씁니다.
pdm install| 하고 싶은 일 | 명령어 |
|---|---|
| 프로젝트 초기화 | pdm init |
| 라이브러리 추가 | pdm add requests |
| 라이브러리 제거 | pdm remove requests |
| 프로젝트 환경 재현 | pdm install |
| 가상환경에서 실행 | pdm run python main.py |
conda는 앞의 도구들과는 결이 조금 다릅니다. 데이터 분석, 머신러닝, 과학 계산 분야에서 특히 널리 쓰이는 환경 관리자입니다. 가장 큰 차이점은 conda가 파이썬 라이브러리뿐 아니라 파이썬 자체, 그리고 파이썬이 아닌 다른 프로그램이나 시스템 라이브러리까지 함께 설치·관리할 수 있다는 점입니다.
예를 들어 데이터 분석에 자주 쓰이는 numpy나 과학 계산 라이브러리 중에는, 내부적으로 C나 포트란으로 만든 복잡한 부품을 필요로 하는 것이 많습니다. 일반적인 방법으로는 이런 부품을 설치하다 오류를 만나기 쉬운데, conda는 이미 잘 빌드된 형태로 이 모든 것을 한 번에 깔아 주기 때문에 훨씬 수월합니다. 그래서 데이터·과학 분야에서 오랫동안 사랑받아 왔습니다.
conda는 Miniconda 또는 Anaconda라는 형태로 설치합니다. 필요한 것만 담아 가벼운 Miniconda로 시작하는 것을 권합니다. Miniconda 공식 페이지에서 자신의 운영체제에 맞는 설치 파일을 받아 실행하면 됩니다. macOS에서 Homebrew를 쓴다면 아래도 가능합니다.
brew install --cask miniconda설치 후 확인은 다음과 같습니다.
conda --versionconda는 "환경(environment)"이라는 단위로 작업 공간을 나눕니다. 환경을 만들 때 원하는 파이썬 버전을 함께 지정할 수 있습니다.
conda create -n myenv python=3.12만든 환경을 사용하려면 "활성화(activate)"해야 합니다. 활성화하면 그때부터 그 환경의 파이썬과 라이브러리가 쓰입니다.
conda activate myenv환경 사용을 마치고 빠져나올 때는 아래 명령을 씁니다.
conda deactivate활성화된 환경 안에서 라이브러리를 설치할 때는 conda install을 씁니다.
conda install numpy pandasconda 저장소에 없는 라이브러리는 pip으로도 설치할 수 있습니다. conda 환경 안에서 pip을 쓰면 그 환경에만 설치되므로 함께 활용하면 됩니다.
만들어 둔 환경의 목록을 보거나 필요 없어진 환경을 지우려면 다음 명령을 씁니다.
conda env list
conda remove -n myenv --all| 하고 싶은 일 | 명령어 |
|---|---|
| 환경 만들기(파이썬 버전 지정) | conda create -n myenv python=3.12 |
| 환경 활성화 | conda activate myenv |
| 환경 비활성화 | conda deactivate |
| 라이브러리 설치 | conda install numpy pandas |
| 환경 목록 보기 | conda env list |
| 환경 삭제 | conda remove -n myenv --all |