# https://github.com/astral-sh/uv 를 사용하면 pip,pipx,pyenv,virtualenv 등의 파이썬 툴들의 기능을 통합하고 사용할 수 있고 실행(설치등)도 빠르다.
# 참고로 pip 가 없을때 설치
# python -m ensurepip --upgrade
# python -m pip install --upgrade pip
# uv 설치
pip install uv
# 또는
brew install uv
# 이제 uv 만 붙여서 실행
# --system 은 필요시 설정
uv pip install {패키지명} --system
# 다음 스샷으로(왼쪽:pip, 오른쪽:uv pip) 여러 패키지를 한번에 설치(https://github.com/ysoftman/myenv/blob/master/installpip.sh) 해보면 속도 차이가 크다
# 프로젝트 생성하면 readme.md 부터 .git 등의 기본 파일이 생성된다.
uv init aaa
# 패키지를 추가하면 .venv 가상환경이 설정되고, 패키지 관리를 위한 uv.lock 파일이 생성된다.
uv add {패키지명}
# pyenv 부터 system path 등 설치된 모든 파이썬 버전을 확인할 수 있다.
uv python list
# 파이썬 3.12 버전 설치
uv python install 3.12
#####
# pipenv -> uv project 로 마이그레이션
# pipenv-uv-migrate 툴 설치
uv tool install pipenv-uv-migrate
# uv 프로젝트 생성(초기화, pyproject.toml 파일 생성)
uv init
# 마이그레이션(uv tool run -> uvx 로 대체 가능)
uv tool run pipenv-uv-migrate -f Pipfile -t pyproject.toml
# uv 가 인식하지 못하는 버전표현이 있으면 다음과 같은 에러가 발생한다.
InvalidSpecifier: Invalid specifier: '0.5.0'
# pipfile 에서 다음과 같이 변경하면 된다.
aaa-package = "0.5.0" --> "==0.5.0" 또는 "~=0.5.0" 등으로 변경
# uv [script] 섹션은 지원하지 않아 pipfile [scripts] 가 있다면 다음과 같이 스킵된다.
UserWarning: uv does not have the feature of task runner. migration of the scripts section will be skipped.
self._migrate_scripts()
# lock 파일 생성
uv lock
# 싱크(venv로 패키지 설치)
uv sync
# venv 환경으로 실행
uv run mytest.py
comments:
댓글 쓰기