>백엔드 개발 >파이썬 튜토리얼 >시의 대안으로서의 UV

시의 대안으로서의 UV

Susan Sarandon
Susan Sarandon원래의
2024-12-03 14:20:15332검색

Python에는 패키지 관리자가 너무 많습니다. 물론 여기에는 내장 패키지 관리자인 pip의 기능이 부족하다는 분명한 이유가 있습니다. 하지만 내면의 완벽주의자는 기본에 충실한 간단한 솔루션을 원합니다. Python을 설치하면 즉시 빠르고 편리한 패키지 관리자를 얻을 수 있으며 가급적이면 Python 버전 관리자를 사용하는 것이 좋습니다. 하지만 대신에 pip를 얻습니다. 물론 실제로 사용하는 사람들도 있지만 여전히 poem, pdm, conda, Pipenv 또는 적어도 pip-tools가 훨씬 더 편리합니다.

그렇습니다. 시는 누구에게나 좋은 것 같습니다. 나는 대부분의 프로젝트에서 그것을 직접 사용합니다. 그러나 종속성 설치가 느린 것처럼 보이기 시작합니다. 특히 Docker 컨테이너를 다시 빌드할 때 더욱 그렇습니다. 게다가 Poetry 자체를 설치하거나 Python 버전을 변경하는 데 번거로움이 있습니다. 예를 들어 pyenv를 통해 버전을 변경하면 Poetry에서 환경을 다시 만들려고 할 때 오류가 발생합니다. 하지만 다른 버전의 Python에서도 작동할 수 있다고 가정합니다. 물론 이것은 인터프리터의 전체 경로를 지정하여 쉽게 해결할 수 있지만 여전히 버팀목입니다. 동일한 pyenv를 설치하고 일반적으로 작업합니다. 그리고 파이썬 버전을 제어하는 ​​데 더 이상 아무것도 없는 것 같습니다.

그래서 2월에 Ruff 제작자로부터 흥미로운 솔루션이 등장했습니다. Rast로 작성된 UV 패키지 관리자. 물론 순전히 콘솔 기반이며 구문은 시를 매우 연상시킵니다. 기능면에서는 거의 동일하지만 여러 가지 장점이 있고 몇 배 더 빠릅니다. 문서는 동일한 종속성 세트에 대한 설치 시간 다이어그램을 보여줍니다.

UV как альтернатива Poetry

구문이 시와 정말 비슷해요. 예를 들어 프로젝트가 생성되는 방법은 다음과 같습니다(디렉토리로 바로 이동).

uv init project
cd project

다음과 같은 구조가 있습니다.

project
├── .python-version
├── hello.py
├── pyproject.toml
└── README.md

시와 같은 종속성은 pyproject.toml 구성에 저장되고 Python 버전은 .python-version에 저장됩니다.

가상 환경을 만들어 봅시다:

uv venv

다음 항목에 따라 SQLAlchemy를 추가하세요.

uv add sqlalchemy

또는 특정 버전을 추가할 수도 있습니다.

uv add sqlalchemy@2.0.32

이제 삭제해 보겠습니다.

uv remove sqlalchemy

이제 sugar - Python 버전 관리입니다. 3.11.9를 설치하고 이런 인터프리터로 환경을 만들어 보겠습니다.

uv python install 3.11.9
uv venv --python 3.11.9

Python 버전은 .python-version에 저장되며, 패키지 관리자는 UV이므로 인터프리터를 변경할 때마다 패키지 관리자에게 이를 지적할 필요는 없습니다. 또한 버전을 수동으로 설치할 필요도 없지만 원하는 버전으로 즉시 환경을 생성합니다. 버전이 설치되어 있지 않으면 UV 자체가 해당 버전을 끌어옵니다. 즉, 그것에 대해 생각할 필요가 없습니다. 전혀 - 뭐, 스릴이 넘치네요.

시와 마찬가지로 PyPI에는 패키지를 구축하고 게시하는 기능이 있습니다. 두 가지 명령을 사용하여 컨테이너를 빌드하고 패키지를 게시할 수 있습니다.

uv build
uv publish

UV를 감독자로 사용할 수도 있고, uv run을 사용하여 스크립트와 애플리케이션을 실행할 수도 있습니다

그리고 케이크 위의 체리는 도커 이미지입니다.

FROM ghcr.io/astral-sh/uv:python3.12

WORKDIR /app

RUN uv venv

CMD ["run", "app"]

파이썬 이미지를 가져와서 pip를 통해 거기에 UV를 설치할 필요 없이 즉시 UV 이미지를 가져와서 재미있게 즐길 수 있습니다. 또한 거기에는 다른 많은 트릭이 있지만 도크에는 이것에 대해 (그런데 매우 명확합니다) 도크에 이러한 칩이 필요한 사람들은 도크에 들어가는 것을 두려워하지 않을 것입니다.

일반적으로 정말 편리한 도구이자 시의 좋은 대안입니다. 아직 어떤 IDE에도 UV 지원이 없지만 시간 문제입니다. 기능이 너무 많아서 좋네요. 프로젝트를 발전시키고 싶습니다. 이 게시물을 공유하고 무엇을 사용하는지 적어주세요.

추신 그리고 TGC에 빠져보세요: https://t.me/dmkjfss

위 내용은 시의 대안으로서의 UV의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.