rabbit-jun 2025. 3. 27. 22:55

본 포스터를 시작하기 앞서 WSL2를 이용했음을 알립니다.

uv

uv는 여러 파이썬 버전과 패키지를 관리 할 수 있으며 기존의 관리 도구들보다 빠르다

 

1. uv 설치하기

# On macOS and Linux.
curl -LsSf https://astral.sh/uv/install.sh | sh

uv version 을 확인하고 최신 버전(이 글 기준 0.6.10)이 아니라면 uv self update 해주자

 

2. uv venv 이용하기

  1. uv venv : uv 가상환경 생성
  2. uv init : 프로젝트 초기화
  3. uv run python your_file_name.py : uv 가상환경에서 파일 실행 (따로 가상환경에 안들어가도 됨)

 

3. uv python install wnat_your_version

  1. uv python install want_your_version : 원하는 버전을 설치할 수 있다 (uv venv를 하지 않았더라도 알아서 uv 가상환경에 설치된다)
    • uv python list: 설치 가능한 파이썬 버전을 볼 수 있다.
    • uv python find: 설치된 파이썬 버전을 확인할 수 있다
    • uv python uninstall want_your_version: 파이썬 버전을 삭제한다
    • uv python pin want_your_version: .venv 안세서 사용하는 Python 버전을 원하는 버전으로 고정시킨다.

 

4. scripts

  • uv run your_script: 가상환경 활성화 + 스크립트 파일 실행
  • uv add your_libray --your_script : 특정 파이썬 스크립트 하나에만 적용할 라이브러리를 설치
  • uv remove your_libray --your_script: 해당 스크립트에 연결된 라이브러리 제거
  • ex)*
  • 예전*requests가 전체 가상환경에 깔려서 script1, script2에서 모두 사용 가능
  • pip install requests python script1.py python script2.py

uv

uv add requests --script script1.py

이렇게 하면 script2.py에서는 requests를 사용 못함

 

5. project

명령어 설명 비고
uv init pyproject.toml 생성해서 프로젝트 초기화 해당 프로젝트에 쓸 python 버전과 의존성 관리 시작
uv add your_libray 현재 프로젝트에 의존성 추가 자동으로 pyproject.toml + uv.lock 갱신
uv remove requests 의존성 제거 pyproject.toml에서 해당 라이브러리를 제거 및 uv.lock으로 갱신하며 .venv안에서도 삭제됨
uv sync pyproject.tomllockfile에 맞춰 가상환경 재설정 팀원에게 받은pyproject.toml,uv.lock을 기준으로 패키지를 똑같이 만든다
uv lock uv.lock 생성/갱신(정확한 의존성 버전 고정) 정확한 버전 명시
uv run 해당 프로젝트 환경에서 명령어 실행 ex) uv run python main.py
uv tree 의존성 트리 시각화 어떤 라이브러리가 뭘 포함하는지
uv build 패키지 배포용 압축파일 만들기(.whl,.tar.gz) 내 코드를 다른 사람이 설치할 수 있게 .whl, .tar.gz 파일로 패키징
uv publish PyPI같은 패키지 저장소에 업로드 PyPI(파이썬 공식 저장소)에 내 패키지를 업로드하는 명령어

 

6. Tools

Running and installing tools published to Python package indexes, e.g., ruff or black.

ruff or black은 파이썬 코드가 정규 표현대로 잘 써져있는지 검사하고 자동으로 수정해주는 도구다.

uv tool install ruff # 코드 스타일 검사
uvx ruff check . # 현재 파일의 코드 스타일을 검사한다, uvx ruff check . --fix 하면 수정까지 해줌

이 도구들은 프로젝트에 종속되지 않고, 개발자 PC 전체에서 공유되며 가볍고 빠름
ruff를 설치하여 코드 작성 실력을 몸에 배도록 해보자

 

7. 직접 세세하게 컨트롤하고 싶을 때

명령어 기존 pip 명령어 설명
uv venv python -m venv 새로운 가상환경 생성
uv pip install pip install 패키지 설치
uv pip uninstall pip uninstall 패키지 삭제
uv pip list pip list 설치된 패키지 목록
uv pip show pip show 특정 패키지 상세 정보
uv pip freeze pip freeze 패키지 목록을 requirements.txt 형식으로 출력
uv pip check pip check 패키지 간 버전 충돌 여부 확인
uv pip tree pipdeptree 의존성 트리 출력

이렇게 하면 구식이지만 돌아 가는 코드(레거시 프로젝트)에 적합

 

출처:

https://docs.astral.sh/uv/getting-started/installation/#standalone-installer
django dowload

django with python

반응형