Как я могу принудительно переустановить мой локальный пакет с помощью «uv»?Python

Программы на Python
Ответить
Anonymous
 Как я могу принудительно переустановить мой локальный пакет с помощью «uv»?

Сообщение Anonymous »

Я начинаю использовать uv для своего CI, поскольку он показывает выдающуюся производительность по сравнению с обычной установкой pip. Для каждого запуска CI я (фактически Nox делает это от моего имени) создаю виртуальную среду, которая будет использоваться для запуска тестов. В этой среде я запускаю следующее:

Код: Выделить всё

uv pip install .[test]
Моя папка — это простой пакет Python, такой как этот:

Код: Выделить всё

my_package/
├── __init__.py
└── logic.py
docs/
├── index.rst
└── conf.py
test/
└── test_something.py
pyproject.toml
noxfile.py
Поскольку uv все кэширует, моя виртуальная среда никогда не обновляется, и я не могу проверять новые функции без перестройки venv с нуля. Как я мог убедиться, что "." переустанавливается из исходного кода каждый раз, когда я запускаю тесты?
Я вижу три потенциальных варианта:
  • Всегда устанавливать в редактируемом режиме: uv pip install -e .[test], который не идеален для целей тестирования, поскольку я не проверяю, включает ли сборка колеса все необходимые файлы.
  • Принудительно переустановить в вызове CI: uv pip install --reinstall .[test]. Думаю, я потеряю кеширование для всех библиотек, а не только для моего пакета.
  • Принудительно переустановите из файла pyproject.toml: reinstall-package = ["."], но я не знаю, будет ли это мешать нормальной установке пользователями, которые не запускают тесты.
Я так понимаю? отсутствует альтернатива и какой из них лучше всего подходит, чтобы избежать нежелательных побочных эффектов в моих тестах?

Подробнее здесь: https://stackoverflow.com/questions/794 ... ge-with-uv
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»