[devel] Python Policy (was: Re: [SCM] packages/newt: heads/sisyphus)

Alexey Morozov morozov_ml at ngs.ru
Wed Sep 30 03:25:04 UTC 2009


Здравствуйте.

В сообщении от Среда 30 сентября 2009 01:28:49 автор Evgeny Sinelnikov 
написал:
> 1. Есть ли возражения относительно подхода, когда в все пакеты с
> питоновскими модулями будут именоваться pythonX.Y-module-%{name}? Я
> предлагаю отказаться от "чистых" имён в пользу удобства именования и
> однозначности при переездах на новые питоны.
Если интересно, заметная часть питон-модулей (включая .pyc/.pyo!) преспокойно 
переезжает из pythonX.Y в pythonX.<Y+1> . Исключения составляют те, кто 
завязан на libpython.so и другие ELF-библиотеки. Поэтому, как мне кажется, 
было бы разумнее, если бы бОльшая часть питон-модулей лежала где-нибудь в 
/usr/share/pythonX. Ну и остаётся некоторый риск того, что в каком-то из 
минорных апдейтов (слегка) сломают совместимость по байткоду.

Альтернативный подход применён в Debian Python Policy. У них предкомпиляция 
байткода осуществлялась, если я правильно помню, на машине конечного 
пользователя (на этапе dpkg-configure), в каталогах, специфичных для данной 
версии питона.

Посмотрите, кстати, может, и велосипед не надо изобретать :)

> 2. Кто будет осуществлять поддержку python policy на уровне rpm?
> Python Team? Если да, то прошу помочь реализовать средство подстановки
> точной версии питона в shabang для скриптов. Сейчас я не совсем
> понимаю куда это лучше встроить и как это должно работать. Для меня
> это одно из основных препятствий для тестирования двух питонов.
Вообще говоря, это осуществляется стандартными питоновскими distutils & Co.
Достаточно просто запускать не /usr/bin/python, а /usr/bin/pythonX.Y.

Собственно говоря, и зависимость на точную версию python пробивалась именно 
поэтому - во всех скриптах, которые зависели от установленных в 
/usr/lib/python/X.Y модулей, в хэшбэнге был именно pythonX.Y. 


More information about the Devel mailing list