Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

[python] Python 2 v utilitách...

9 views
Skip to first unread message

Vladimír Macek

unread,
Aug 25, 2022, 5:25:01 AM8/25/22
to
Otázka do pléna :-)

Dnes mi Ubuntu nabídlo odinstalování obsolete balíku python-is-python2,
jehož součástí je symlink
/usr/bin/python -> python2

Přestanou tím fungovat všechny skripty, které mají shebangy

#!/usr/bin/python
#!/usr/bin/env python

plus cokoli, co prostě volá "python" a není ve virtualenvu.

Zároveň je možné nainstalovat balík python-is-python3, což vyrobí symlink
/usr/bin/python -> python3

Tedy... grand switch. :-D

Pokud se vymění systémový symlink, skončí pro danou mašinu tak trochu jedna
éra. Asi nejsem sám, kdo má doma nebo na serverech mnoho svých utilit pro
python2, které mají buď jeden z výše uvedených shebangů, některé nemají
shebang vůbec a některé ani nemají příponu .py, protože jsou myšlené jako
příkazy.

Říkal jsem si "budeš mít prázdnou sekci Obsolete and locally created
packages v aptitude", tak jsem balík python-is-python2 odstranil. Tím se
mimochodem odstranil i celý python2.7! :-D Ten jsem rychle vrátil zpět. Na
to připraven úplně nejsem.

Pak jsem začal dumat, jak z hodiny na hodinu změnit vše na python3. Chvilku
jsem procházel ten svůj swamp skriptů... dumal.

Zkusil jsem hromadně 2to3, ale ten občas spadne, když nemůže nějaký soubor
přečíst, shebangy zdá se neopravuje.. trochu mě to naprdlo... :-)

Nakonec jsem si řekl, že na akci kulový blesk teď čas nemám. A protože
python-is-python2 po odstranění v nabídce již není, vyrobil jsem systémový
symlink python na python2 ručně.

Moc pyšný na to nejsem, ale asi to budu řešit postupně.

Jak jste to vyřešili vy?

--
Děkuji. S pozdravem

Vladimír Macek | +420 608 978 164

Petr Messner

unread,
Aug 26, 2022, 6:25:30 AM8/26/22
to
Ahoj.

asi bys neměl spoléhat na to, co vůbec "python" je, a už vůbec ne, že to je python2, tak bych upravil shebangy:

#!/usr/bin/python -> #!/usr/bin/python2
#!/usr/bin/env python -> #!/usr/bin/env python2

Zajistit si, že ti balíčkovač neodinstaluje python2.7 (tj. říct mu, že ho fakt chceš, ne že to je jen závislost něčeho, a to už jsi udělal), a můžeš v klidu pokračovat v hraní na dinosaury :)

Alternativa k big bangu je upravovat kód (klidně pomalu a postupně) tak, aby běžel pod 2 i 3, a až si budeš jistý, že to pod 3 běží v pohodě, tak to pod ním začneš používat.

Petr



čt 25. 8. 2022 v 11:25 odesílatel Vladimír Macek <ma...@sandbox.cz> napsal:
_______________________________________________
Python mailing list
pyt...@py.cz
http://www.py.cz/mailman/listinfo/python

Visit: http://www.py.cz
0 new messages