Pull to refresh

Comments 10

Основной фокус с Rust, который недоступен в Python состоит в том, что Cargo это дефолт. А poetry/uv/rye это очередной 15й стандарт из того знаменитого комикса.

Все эти, без сомнения, значимые проекты сработают в момент, когда pip и virtualenv будут признаны устаревшими и удалены из всевозможных поставок.

Poetry начал переодически подкидывать "приколы". Чувствую переход на uv точно не избежен) А на rey поглядим, интересно

Как выпустили 2-ю версию poetry обновился и у меня всё сломалось)) т.к. всё завязано на автоэкспорт было, в контейнере всё ставилось уже через pip. В итоге перешел на uv и очень рад - работает быстро.

Надо было поставить аддон для экспорта. Но uv тоже неплох

Недавно перевели один проект на uv в рамках теста. Скорость сборки выросла в разы, теперь тоже думаем перебрать всё остальное.
Вообще выглядит, будто рано или поздно ruff с uv вытеснят старые инструменты и может быть все сопутствующие компоненты Python перепишут на Rust.

Мне очень сильно нравится uv. Он очень быстрый и универсальный. А ещё может работать абсолютно на любой нулевой чистой системе вообще без какого-либо питона. Берём всего лишь один исполняемый elf/exe файл uv, Запускаем Через него наш проект или наш скрипт (uv run --script), реально проходит буквально 4 секунды, не больше, он и питон нужный самостоятельно скачивает, и зависимостью и все это дело запускается и очень хорошо работает. По факту, это можно даже использовать вместо pyinstaller, Для распространения наших desktop приложений до конечных пользователей. Я пробовал, всё отлично работает и без каких-либо проблем. Можете даже сами попробовать. Создать виртуальную машину с чистой Windows, где вообще полностью ничего нет. Положить туда всего лишь один единственный файл uv.exe И запустить через него ваш проект. И вы приятно удивитесь

можно использовать Multi-stage сборку. Образ билдера:

ARG PYTHON_VERSION=3.13

FROM python:${PYTHON_VERSION}-alpine

ENV PIP_DEFAULT_TIMEOUT=100
PIP_DISABLE_PIP_VERSION_CHECK=1
PIP_NO_CACHE_DIR=1
POETRY_VERSION=2.1.1
PYTHONUNBUFFERED=1

ENV PATH="/root/.local/bin:${PATH}"

RUN apk add --no-cache gcc alpine-sdk linux-headers &&
wget https://install.python-poetry.org -O - | python3 - &&
poetry self add poetry-plugin-bundle

Образ приложения:

ARG PYTHON_VERSION=3.13

FROM python-poetry-builder:python${PYTHON_VERSION} AS builder

WORKDIR /usr/src/app

COPY pyproject.toml ./
COPY src/. ./src
RUN poetry lock &&
poetry bundle venv --only=main /venv -vvv

FROM python:${PYTHON_VERSION}-alpine
COPY --from=builder /venv /venv

ENTRYPOINT ["/venv/bin/app"]

Вместо COPY poetry.lock он почему-то создаётся заново. Весь его смысл теряется

так и было задумано. при конфигурации версия зависимостей фиксируется на мажорной-минорной версии. простая пересборка контейнера подтянет новую патч версию при наличии

Нужно просто прикрутить dependabot/renovate/периодический poetry update к репозиторию. Обновлять зависимости без прогона тестов я бы уж точно не стал.

Sign up to leave a comment.

Information

Website
idaproject.com
Registered
Founded
2013
Employees
201–500 employees
Location
Россия
Representative
Egor