[devel] Python 2 EOL

Vladimir D. Seleznev vseleznv на altlinux.org
Вс Окт 20 20:52:42 MSK 2019


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, то лучше так и делать.

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


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