Python사용 시 도움되는 VSCode 팁 모음
들어가며
기존에 사용하던 conda와 같은 패키지 매니저 대신 최근 uv를 쓰는 프로젝트가 하나둘씩 늘어나는 추세이다. uv는 pip, pip-tools, pipx, poetry, pyenv, twine, virtualenv 등을 대체할 하나의 도구로, python 패키지 설치 및 관리, 빌드, 배포까지 가능하며 엄청난 속도를 자랑한다. 특이사항으로는 pip보다 10-100배 빠르다는 점이다. 다음은 uv에서 공식적으로 홍보하고 있는 내용이다.
- 🚀 pip, pip-tools, pipx, poetry, pyenv, twine, virtualenv 등을 대체하는 올인원 도구
- ⚡️ pip보다 10~100배 빠른 속도
- 🗂️ 범용 락파일을 포함한 종합적인 프로젝트 관리 제공
- ❇️ inline dependency metadata를 지원하는 스크립트 실행 기능
- 🐍 Python 버전 설치 및 관리
- 🛠️ Python 패키지로 배포된 도구의 설치 및 실행 지원
- 🔩 익숙한 CLI로 pip 호환 인터페이스 및 성능 향상
- 🏢 대규모 프로젝트를 위한 Cargo 스타일의 워크스페이스 지원
- 💾 의존성 중복 제거를 위한 글로벌 캐시로 디스크 공간 효율화
- ⏬ Rust나 Python 없이도 curl 또는 pip로 설치 가능
- 🖥️ macOS, Linux, Windows 지원
설치방법
설치는 OS에 따라 다음과 같이 진행할 수 있다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
# On Linux
curl -LsSf https://astral.sh/uv/install.sh | sh
# macOS
brew install uv
# On Windows
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
# With pip
pip install uv
# Or pipx
pipx install uv
프로젝트
프로젝트는 여러개의 파일로 이루어진 파이썬 코드를 효과적으로 다루기 위한 하나의 단위이다.
프로젝트는 pyproject.toml
에 메타데이터를 저장해 의존성 등을 정의한다.
그럼 프로젝트를 만들어보자.
초기화
프로젝트를 만들기 위해서는 우선 초기화가 필요하다.
초기화는 다음과 같이 uv init [project name]
으로 할 수 있다.
1
2
3
4
5
6
7
8
# 특정 디렉토리에서
uv init hello-world
cd hello-world
# initialize a project in the working directory:
mkdir hello-world
cd hello-world
uv init
프로젝트를 생성하면 다음과 같은 파일들이 생기게 된다.
1
2
3
4
5
├── .gitignore
├── .python-version
├── README.md
├── main.py
└── pyproject.toml
이는 프로젝트의 의존성 등을 관리하는 파일들이다.
가상환경
프로젝트를 초기화했다면 가상환경을 생성하자.
가상환경을 생성하려면 다음과 같이 uv venv
를 입력하면 된다.
1
uv venv
또한, 특정 버전을 명시하여 생성할 수도 있다. 필요시에 uv는 해당 버전을 다운로드받고 설치한다.
1
uv venv [--python <python-version>]
가상환경을 생성한 뒤 실행은 venv 명령어와 동일하게 한다.
1
2
3
4
5
6
# activate
source .venv/bin/activate # Linux/macOS
.venv\Scripts\activate.bat # Windows
# 비활성화
deactivate
그 외 명령어는 venv를 참고하자.
1
2
3
4
5
# 가상환경 목록 보기
uv venv list
# 가상환경 제거
uv venv remove <env-name>
패키지 설치
패키지 설치는 기존에 pip
으로 설치하던 것에서 앞에 uv만 붙이면 된다.
1
2
3
4
uv pip install <package-name>
# requirements 사용
uv pip install -r requirements.txt
버전을 지정하는 등 사용법은 pip
과 동일하다.
Leave a comment