Если приложение Python использует UV.Lock для зависимостей, должен ли PyProject.Toml вообще включать ограничения версий?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Если приложение Python использует UV.Lock для зависимостей, должен ли PyProject.Toml вообще включать ограничения версий?

Сообщение Anonymous »

Этот вопрос не о управлении зависимостями в целом. Речь идет о конкретном, но в то же время очень распространенный случай, когда он создает приложение, которое работает в изолированной среде, такой как контейнер Docker или выделенный VirtualEnv, где мы имеем полное управление, какие именно пакеты Python устанавливаются.
Я использую UV в качестве диспетчера пакетов, и, как всегда, используется и тем же, так же, как и то же самое, так же, как и то же самое, так же, как и то же самое, так же, как и впредь. Когда я хочу обновить зависимость, я использую только UV для обновления UV.Lock . (Или я позволю Devingabot сделать это для меня, теперь, когда он поддерживает UV).
Мой вопрос: как мне перечислить зависимости в pyproject.toml ?

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

dependencies = [
"django >= 4.1.14",
"jinja2 >= 3.0.2",
"numpy >= 1.15.3"
]
Я мог бы использовать> = ограничения, как показано выше. Но по мере выпуска новых обновлений версии в UV.Lock скоро расходятся от этих нижних границ, оставив их в качестве ничего, кроме отвлекающего шума. Почему эти конкретные нижние границы? Они, вероятно, просто оказались самыми современными версиями в то время, когда я перешел с предыдущего менеджера пакетов на УФ, и стали окаменелых здесь. < /P>

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

dependencies = [
"django",
"jinja2",
"numpy"
]
< /code>
Кажется, что лучше не предоставлять никаких ограничений версий, как показано выше. Но хотя этот вариант использования должен быть довольно распространенным явлением, я не могу найти никаких ссылок на него в УФ -документах. Действительно, документы уклоняются даже от признания того, что зависимости могут быть перечислены в pyproject.toml 
без ограничений версий, хотя сам инструмент УФ -ультрафиолетовой индикации обрабатывает это без какой -либо жалобы. Или я что -то упускаю? Было около 80 прямых зависимостей, все прикрепленные к конкретным версиям, и для эффективного использования ультрафиолетового излучения мне нужно было заменить их ограничениями версии. Я не просто использовал ранее закрепленные версии в качестве более низких границ в pyproject.toml , потому что я знал, что это в основном только последнее выпуск каждой библиотеки, а не подлинные ограничения на совместимость.
Если бы я использовал UV с самого начала, начнется только с грудью и постепенно добавляя больше времени, Pypro. (Точка различия - комментарии): < /p>

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

dependencies = [
# we need the doohickey functionality introduced in 4.1
"django >= 4.1.1",
# the regression affecting foobars is fixed in 3.0.2
"jinja2 >= 3.0.2",
# can't upgrade to 2.x until we remove old-style thingamajigs
"numpy ~= 1.15"
]
Это подлинные и значимые нижние границы, которые явно относятся к pyproject.toml .

Подробнее здесь: https://stackoverflow.com/questions/797 ... nclude-ver
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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