[devel] Python 2 EOL

Vladimir D. Seleznev vseleznv на altlinux.org
Пн Окт 21 01:10:04 MSK 2019


On Sun, Oct 20, 2019 at 09:15:32PM +0300, Ivan Zakharyaschev wrote:
> 
> On Sun, 20 Oct 2019, Vladimir D. Seleznev wrote:
> 
> > On Sun, Oct 20, 2019 at 06:13:02PM +0300, Ivan Zakharyaschev wrote:
> > > On Sun, 20 Oct 2019, Vladimir D. Seleznev wrote:
> > > 
> > > > On Sun, Oct 20, 2019 at 02:41:31PM +0400, Sergey Y. Afonin wrote:
> > > > > On Saturday 06 July 2019, Vladimir D. Seleznev wrote:
> > > > > 
> > > > > > > 1. Намечен ли дедлайн, когда все эти пакеты нужно перевести на
> > > > > > > Python3, или это пока больше пожелание? Например, scons я не могу
> > > > > > > обновить прямо сейчас, сломается сборка mongo, нужно дождатся нового
> > > > > > > релиза.
> > > > > > 
> > > > > > Нет, дедлайна не намечено. Это скорее письмо с обозначением проблемы и,
> > > > > > да, пожелание перевести всё, что можно перевести, на третий Python.
> > > > >  
> > > > > Я тут в тексте про gpsd нашёл:
> > > > > 
> > > > > | Python.org says that if you have an installed Python, there should be a program
> > > > > | in your path called 'python'.  This is specified in PEP 394.  This rule is not
> > > > > | always followed.  You can work around this by linking python3 to python like this
> > > > > |
> > > > > |    ln -s /usr/bin/python3 /usr/bin/python
> > > > > 
> > > > > Перекликается со свежей темой "Новая версия GnuPG в Сизифе" и переименование
> > > > > бинарника в аналогичном, но несовместимом пакете. Но то, что /usr/bin/python
> > > > > сейчас python 2, вынуждает фиксить сборку (gpsd) прямо как-то вот так:
> > > > > 
> > > > > sed -i 's|/usr/bin/python|%__python3|' contrib/gpsData.py
> > > > > 
> > > > > find -type f -name "*.py" -exec sed -i 's|/usr/bin/env python|%__python3|' {} \;
> > > > > 
> > > > > for FILE in gegps gpscat gpsfake gpsprof ubxtool xgps xgpsspeed zerk ; do
> > > > >    sed -i 's|/usr/bin/env python|%__python3|' $FILE
> > > > > done
> > > > 
> > > > Любопытно. Я не разбираюсь в сборке пакетов на python3, но в тех
> > > > пакетах, которые я собирал, путь в шебанге правильный без дополнительных
> > > > действий с моей стороны. Либо это апстрим позаботился, либо что-то из
> > > > rpm-build-python3. Лучше всех в этом разбирается imz на .
> > > 
> > > Нет, собственно rpm-build-python3 ничего не переделывает. Т.е. upstream 
> > > (или setuptools) позаботились.
> > > 
> > > Просто считалось, что если скрипт готов к python3, то ему явно это кто-то 
> > > пишет в shebang.
> > > 
> > > Возможно, со временем появляется всё больше скриптов, написанных на 
> > > python3 и которые считают, что python это по умолчанию python3. Не очень 
> > > понятно, что с этим деалть и делать ли. Нам хочется определённости при 
> > > упаковке, какой язык используется в скрипте. (Скорее всего это не пакеты с 
> > > pypi, офрмленные для setuptools.)
> > 
> > Явное лучше неявного. Если возможно автоматически исправлять шебанг на
> > #!/usr/bin/python2 или #!/usr/bin/python3, то лучше так и делать.
> 
> Тоже так думаю. Но раньше у нас в пакетах никто не привык делать 
> /usr/bin/python2 вместо /usr/bin/python. Нужно будет переучиваться, 
> переходить.

Я имел в виду автоматически заменять шебанг при сборке, если это возможно.

-- 
   С уважением,
   Владимир Селезнев


Подробная информация о списке рассылки Devel