Jak v Ubuntu 18.04 instalovat/používat Python 3.8?

qelurg

  • ****
  • 372
    • Zobrazit profil
    • E-mail
Jak v Ubuntu 18.04 instalovat/používat Python 3.8?
« kdy: 15. 05. 2020, 10:34:45 »
Na první pohled je to jednoduchý úkol, protože pro instalaci stačí příkaz:

Kód: [Vybrat]
sudo apt-get install python3.8
Jenže takto nainstalovaný python používá /usr/lib/python3/ stejně jako systémový python3.6, což nadělá paseku.

Já třeba narazil na chybu

Kód: [Vybrat]
...
  File "/home/petr/.local/lib/python3.8/site-packages/IPython/utils/process.py", line 19, in <module>
    from ._process_posix import system, getoutput, arg_split, check_pid
  File "/home/petr/.local/lib/python3.8/site-packages/IPython/utils/_process_posix.py", line 23, in <module>
    import pexpect
  File "/usr/lib/python3/dist-packages/pexpect/__init__.py", line 75, in <module>
    from .pty_spawn import spawn, spawnu
  File "/usr/lib/python3/dist-packages/pexpect/pty_spawn.py", line 14, in <module>
    from .spawnbase import SpawnBase
  File "/usr/lib/python3/dist-packages/pexpect/spawnbase.py", line 224
    def expect(self, pattern, timeout=-1, searchwindowsize=-1, async=False):
                                                               ^
SyntaxError: invalid syntax

Což je v pořádku, protože v Pythonu 3.8 je async zakázaný keyword. Blbý je, že leze do systémové knihovny pro 3.6.

Když chci nainstalovat lokální pexpect, tak opět narážím na systémový.

Kód: [Vybrat]
petr@T460s-U18:~/Dropbox/!DATA-WORK/SITES/rady$ python3.8 -m pip install pexpect
Defaulting to user installation because normal site-packages is not writeable
Requirement already satisfied: pexpect in /usr/lib/python3/dist-packages (4.2.1)

Jak python 3.8 nainstalovat, aby nelezl do systémových knihoven pro jinou verzi pythonu?
« Poslední změna: 15. 05. 2020, 14:02:27 od Petr Krčmář »



qelurg

  • ****
  • 372
    • Zobrazit profil
    • E-mail
Re:Jak v ubuntu 18 instalovat/používat python 3.8?
« Odpověď #2 kdy: 15. 05. 2020, 16:04:09 »
https://stackoverflow.com/a/58568176/6950905

Děkuji, ale doufám že existuje i jiné řešení než další distribuční systém software. Začíná být v tom linuxu bordel. Stačí že můj systém používá apt, snap a appimage, další už nechci. Když už v tom apt (a jde o oficiální kanál od ubuntu) ten python3.8 je, tak to snad musí jít i nějak rozumně používat, ne? Nějaký tajemný zásah do registrů, nebo magický přepínač nebo tak něco.

Re:Jak v Ubuntu 18.04 instalovat/používat Python 3.8?
« Odpověď #3 kdy: 15. 05. 2020, 16:28:08 »
No ja osobne bych rozhodne nechal stavajici systemovy python jak je a 3.8 bych nainstaloval jako alternativu druhoi v poradi.

Interpretr se pak spousti jako python38, bezny python3 ukazuje na stary systemovy.

https://hackersandslackers.com/multiple-versions-python-ubuntu/

A veskery vyvoj bych delav ve virtualenvech, nejlepe pri pouziti Pycharm, ktery pouziva virtualenvy defaultne.


Re:Jak v Ubuntu 18.04 instalovat/používat Python 3.8?
« Odpověď #4 kdy: 15. 05. 2020, 23:49:38 »
Odpověď je: pyenv


Re:Jak v Ubuntu 18.04 instalovat/používat Python 3.8?
« Odpověď #5 kdy: 16. 05. 2020, 10:08:48 »
apt Ti teda nejspíš neumožňuje to bezpečně nainstalovat. To je asi chyba balíčkování v Ubuntu. Pokud míchá instalace, neměl by dovolit instalovat jedno, aniž odinstaluješ druhé. Používám Debian, ale nezkoušel jsem.
pyenv je primárně určen pro per-user instalace. Pro zkoušení, pro vývoj různých projektů pod různou verzí a pro testy pod mnoha verzemi pomocí tox.
pyenv by měl jít použít i pro system-wide instalaci, kde potřebujeme dostat python jinam než do /usr/bin/, třeba do /usr/local/bin/. Návod s pyenv je např. zde: https://stackoverflow.com/questions/41422826/install-python-of-specific-version-system-wide-with-pyenv

Než se pak pořád ručně přepínat, nainstaluj si virtualenvwrapper, pro projekty si vytvoř (příkazem mkvirtualenv -p...) prostředí s požadovanou verzí pythonu a přepínej se příkazem: workon <projekt>.

V projektu udržuj závislosti striktně v requirements(.txt apod.), ideálně pomocí pip-tools, což Ti usnadní i fix verzí, i hromadný upgrade závislostí.

Upgrade verze pythonu bych v konkrétním virtualenv nedělal. Vytvoř si nové samostatné prostředí pomocí mkvirtualenv, a ten příkaz (s -r <nefixnutezavislosti>) Ti nainstaluje i všechny závislosti. Ty si pak pomocí pip-tools (příkaz pip-compile) znovu fixneš pro novou verzi pythonu.

Re:Jak v Ubuntu 18.04 instalovat/používat Python 3.8?
« Odpověď #6 kdy: 16. 05. 2020, 10:15:26 »
PS: pro ten system-wide python jsem místo /usr/local/bin/ měl napsat /usr/local/python-3.N.N/bin/

Re:Jak v Ubuntu 18.04 instalovat/používat Python 3.8?
« Odpověď #7 kdy: 16. 05. 2020, 10:16:30 »

A veskery vyvoj bych delav ve virtualenvech, nejlepe pri pouziti Pycharm, ktery pouziva virtualenvy defaultne.

Ano, velice spravne, jde videt ze ikdyz delas v podradnem programovacim jzyku, umis si zvolit nejlepsi mozne, v Jave napsane, IDE. Mas nadeji.

Ink

  • *****
  • 654
    • Zobrazit profil
    • E-mail
Re:Jak v Ubuntu 18.04 instalovat/používat Python 3.8?
« Odpověď #8 kdy: 16. 05. 2020, 11:51:43 »
Pomalu bych zacal uvazovat nad 20.04, tam je 3.8 default. Virtualni prostredi je samozrejme moznost vzdycky.

Re:Jak v Ubuntu 18.04 instalovat/používat Python 3.8?
« Odpověď #9 kdy: 16. 05. 2020, 12:30:21 »
nasměruj si env proměnnou PYTHONPATH do jakékoliv jiné složky, respektuje to pak pip při instalaci i python3.8 při načítání. Ještě ale asi lepší řešení je použít distribuci conda, která tohle vše udělá za tebe, je to sice z pohledu administrace systému bordel (zdvojuje ledacos do vlastní cesty, kam má uživatel write přístup), ale řeší to elegantně tvůj problém.

Re:Jak v Ubuntu 18.04 instalovat/používat Python 3.8?
« Odpověď #10 kdy: 16. 05. 2020, 19:15:01 »
@PetrK: V čem je psané Eclipse? To byla trochu hrůza, když jsem před 5 lety šel na PyCharm. Od té doby trochu nakynul a je už žravější na zdroje. A nepomáhá v JavaScriptu (i když uznávám, že bych mohl mít placenou verzi).
Tak jsem právě přešel na VS Code. Takže já jsem bez naděje. Vlastně taky s nadějí, z PgAdmina jsem šel na DBeaver, a to mi přijde hodně dobrý soft (na to, že je v Javě).

qelurg

  • ****
  • 372
    • Zobrazit profil
    • E-mail
Re:Jak v Ubuntu 18.04 instalovat/používat Python 3.8?
« Odpověď #11 kdy: 17. 05. 2020, 22:08:41 »
Tak jsem se rozhodl to považovat za bug v ubuntu balíčcích. Jako nejjednodušší řešení jsem zvolil nainstalovat nové ubuntu.

Ink

  • *****
  • 654
    • Zobrazit profil
    • E-mail
Re:Jak v Ubuntu 18.04 instalovat/používat Python 3.8?
« Odpověď #12 kdy: 18. 05. 2020, 15:30:29 »
Tak jsem se rozhodl to považovat za bug v ubuntu balíčcích. Jako nejjednodušší řešení jsem zvolil nainstalovat nové ubuntu.

Asi logicke reseni, ale podle rychleho testu update na verzi 4.6 (z Groovy Gorilla) situaci resi taky - prece jenom je to modul v cistem Pythonu. Nevylucuju, ze to rozbije nejaky zavisly balicek, ale podle me se to da risknout.

Ink

  • *****
  • 654
    • Zobrazit profil
    • E-mail
Re:Jak v Ubuntu 18.04 instalovat/používat Python 3.8?
« Odpověď #13 kdy: 18. 05. 2020, 15:32:35 »
Tak jsem se rozhodl to považovat za bug v ubuntu balíčcích. Jako nejjednodušší řešení jsem zvolil nainstalovat nové ubuntu.

Asi logicke reseni, ale podle rychleho testu update na verzi 4.6 (z Groovy Gorilla) situaci resi taky - prece jenom je to modul v cistem Pythonu. Nevylucuju, ze to rozbije nejaky zavisly balicek, ale podle me se to da risknout.

Aha, Groovy Gorilla je 20.10, Focal Fossa je srovnatelny. Ale uz mam ten novejsi.

Re:Jak v ubuntu 18 instalovat/používat python 3.8?
« Odpověď #14 kdy: 06. 06. 2020, 15:37:20 »
https://stackoverflow.com/a/58568176/6950905

Děkuji, ale doufám že existuje i jiné řešení než další distribuční systém software. Začíná být v tom linuxu bordel. Stačí že můj systém používá apt, snap a appimage, další už nechci. Když už v tom apt (a jde o oficiální kanál od ubuntu) ten python3.8 je, tak to snad musí jít i nějak rozumně používat, ne? Nějaký tajemný zásah do registrů, nebo magický přepínač nebo tak něco.

Btw, na tomhle tematu a verzi Pythonu jde videt urcita absurdita linuxoveho balickovaciho systemu. Nejlip to ma zmaknute Debian Stable a treba Linux MX, ktery je nadstavbou nad Debianem Stable. Systemove veci, necht jsou stabilni a nemenne - jako treba verze Pythonu 2. Napr. OXS ma predinstalovany Python taky ve verzi 2, a neni mozne ji menit. Kdyz nekdo chce nejakou cast modernejsi, tak at si ji nainstaluje zvlast a nestrka pazoury do systemovych veci, ktere musi zustat stabilni. Nektere bleeding edge Linux distra mi pripadaji totalne padene na hlavu. Viz jak jsem naposledy nekdy cetl, ze ze dne na den v aktualizaci Arch Linuxu se zvysila verze Pythonu z 2 na 3, a dotycnemu to rozbilo system. Jde videt, co nekdy za posuky ti komunitni udrzbari jsou. Jak nejake vopice.