개발 일지(웹소켓을 이용한 실시간 채팅)
UV 알고 가기
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 이용하기
uv venv
: uv 가상환경 생성uv init
: 프로젝트 초기화- uv run python your_file_name.py : uv 가상환경에서 파일 실행 (따로 가상환경에 안들어가도 됨)
3. uv python install wnat_your_version
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.toml 과 lockfile 에 맞춰 가상환경 재설정 |
팀원에게 받은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
반응형