Alapértelmezett Python interpreter beállítása (modulok telepítése)

kimarite képe

A Python egy általános célú, nagyon magas szintű programozási nyelv, melyet Guido van Rossum holland programozó kezdett el fejleszteni 1989 végén, majd hozott nyilvánosságra 1991-ben. A nyelv tervezési filozófiája az olvashatóságot és a programozói munka megkönnyítését helyezi előtérbe a futási sebességgel szemben.

A Python többek között a funkcionális, az objektumorientált, az imperatív és a procedurális programozási paradigmákat támogatja. Dinamikus típusokat és automatikus memóriakezelést használ, ilyen szempontból hasonlít a Scheme, Perl és Ruby nyelvekhez, emellett szigorú típusrendszerrel rendelkezik.

A Python úgynevezett interpreteres nyelv, ami azt jelenti, hogy nincs különválasztva a forrás- és tárgykód, a megírt program máris futtatható, ha rendelkezünk a Python értelmezővel. A Python értelmezőt számos géptípusra és operációs rendszerre elkészítették, továbbá számtalan kiegészítő könyvtár készült hozzá, így rendkívül széles körben használhatóvá vált.

Forrás: https://hu.wikipedia.org/wiki/Python_(programoz%C3%A1si_nyelv)

A teszteléshez a Linux Mint 20 Ulyana rendszert használtam.

A tükrökről származó, a rendszerre telepített és telepíthető alkalmazások megoldják azt, hogy megtalálják a működésükhez szükséges Python 2-es vagy 3-as verzióit. Egyes alkalmazások a python szimbolikus linket keresik, amely az Ubuntu 18.04-es és a későbbi kiadásaiban már nincs használatban. A jelenség a Linux Mint 19.x és a Linux Mint 20.x kiadásokat érinti.

A python interpreter beállítására akkor van szükség, ha az alkalmazás (példa: PyCharm) a Python interpretert python néven keresi, és ezt az alapértelmezett beállítást az alkalmazásban nem lehetséges a python2 vagy a python3 kifejezésre megváltoztatni. Kijelenthető, hogy általában véve nem kell foglalkozni ezzel a történettel.

Fórum bejegyzés (python):

Since Ubuntu 18.04, python isn't installed by default. Only if you have no package which actually depends on Python 2, you can change the symlinks or on 20.04+ installations, install python-is-python3 which would automatically do that. But if you have some applications dependent on Python2, consider changing the shebang of the script to invoke Python 3 as the interpreter.
Forrás: https://askubuntu.com/questions/1037666/youtube-dl-python-not-found-18-04

A python parancs (szimbólikus link, script vagy bináris) létezésének ellenőrzése (terminálban):

which python

... a parancssor futtatása (Enter) után visszatér a készenléti jelzés, a prompt, azaz nincs találat.

A python2 és a python3 parancsokat a rendszer ismeri:

which python2
/usr/bin/python2
which python3
/usr/bin/python3

A python2 és a python3 szimbolikus linkek (symlink), melyek a telepített Python binárisra mutatnak. Íme:

ls -la /usr/bin/python2
lrwxrwxrwx 1 root root 9 júl   11 19:14 /usr/bin/python2 -> python2.7
ls -la /usr/bin/python3
lrwxrwxrwx 1 root root 9 júl   11 19:14 /usr/bin/python3 -> python3.8

A javaslat (Kulfy/askubuntu) az, ha az alapértelmezett Python interpreternek szeretnéd a Python 3-as verzióját, akkor telepítsd a python-is-python3 alkalmazást, amely létrehozza a python interpretert, amelyet a rendszer is elfogad. Hozzáteszem, ha a Python 2-es verzióját szeretnéd alapértelmezett interpreternek, akkor a python-is-python2 alkalmazást telepítsd. Egyszerre nem telepítheted mindkettőt, mert értelemszerűen ütköznek egymással.

A javasolt módszer

Olvasd végig a bejegyzést, mert ennél jóval kényelmesebb megoldás is létezik...

Python 3 beállítása:

sudo apt-get install python-is-python3

Python 2 beállítása:

sudo apt-get install python-is-python2

... a telepítés után létrejön a rendszerbe épülő, python szimbolikus link (vagy valami hasonló, de ennek nem jártam utána). Esetenként egy-egy alkalmazás kifejezetten ezt keresi és nem a python2 vagy a python3 szimbolikus linkeket, viszont ezek egyikére mutat.

No, de mi van akkor, ha nem szeretném állandóan telepíteni ezt vagy azt a Python interpretert beállító alkalmazást?

A megoldás olyan szimbolikus link használata, amit te készítesz el...

Python interpreter beállítása, változtatása

Hozd létre a python szimbolikus linket az /usr/local/bin/ útvonalon.
Ha váltanál a Python verziók között, akkor törölni kell a hivatkozást (szimbolikus link), majd beállítani a másik Python verziót.

Python 2

-- ha létezik a szimbolikus link, akkor töröld,

sudo rm -f /usr/local/bin/python

-- vagy szüntesd meg a linkelését:

sudo unlink /usr/local/bin/python

-- hozd létre a szimbolikus linket:

sudo ln -s /usr/bin/python2 /usr/local/bin/python

Python 3

-- ha létezik a szimbolikus link, akkor töröld,

sudo rm -f /usr/local/bin/python

-- vagy szüntesd meg a linkelését:

sudo unlink /usr/local/bin/python

-- hozd létre a szimbolikus linket:

sudo ln -s /usr/bin/python3 /usr/local/bin/python

Enjoy :-)

Python

A Linux Mint 20 Ulyana kiadáson alapértelmezetten telepített Python csomagok (a legfontosabbakra keresve):

apt-cache policy python2 python3 python-minimal python3-minimal
python2:
  Telepítve: 2.7.17-2ubuntu4
  Jelölt:    2.7.17-2ubuntu4
  Verziótáblázat:
 *** 2.7.17-2ubuntu4 500
        500 http://ftp.energotel.sk/pub/linux/ubuntu focal/universe amd64 Packages
        100 /var/lib/dpkg/status
python3:
  Telepítve: 3.8.2-0ubuntu2
  Jelölt:    3.8.2-0ubuntu2
  Verziótáblázat:
 *** 3.8.2-0ubuntu2 500
        500 http://ftp.energotel.sk/pub/linux/ubuntu focal/main amd64 Packages
        100 /var/lib/dpkg/status
     3.6.7-1~18.04 500
        500 http://sk.archive.ubuntu.com/ubuntu bionic-updates/main amd64 Packages
     3.6.5-3 500
        500 http://sk.archive.ubuntu.com/ubuntu bionic/main amd64 Packages
python-minimal:
  Telepítve: (nincs)
  Jelölt:    2.7.15~rc1-1
  Verziótáblázat:
     2.7.15~rc1-1 500
        500 http://sk.archive.ubuntu.com/ubuntu bionic/main amd64 Packages
python3-minimal:
  Telepítve: 3.8.2-0ubuntu2
  Jelölt:    3.8.2-0ubuntu2
  Verziótáblázat:
 *** 3.8.2-0ubuntu2 500
        500 http://ftp.energotel.sk/pub/linux/ubuntu focal/main amd64 Packages
        100 /var/lib/dpkg/status
     3.6.7-1~18.04 500
        500 http://sk.archive.ubuntu.com/ubuntu bionic-updates/main amd64 Packages
     3.6.5-3 500
        500 http://sk.archive.ubuntu.com/ubuntu bionic/main amd64 Packages

Python modulok

A Python modulok telepítése akár a python parancssal (verziószám nélkül futtatva) kivitelezhető. Itt visszatérek a bevezetőben olvasható információhoz, hogy a Linux Mint 19.x és a Linux Mint 20.x kiadásoknál ez tapasztalható:

python
bash: python: parancs nem található

... elolvastad a bevezetőt, megismerted az előzményeket.

A python parancs sikeres futtatásához létre kell hoznod a korábban említett szimbolikus linket.
A szimbolikus link létrehozása után a python parancs futtatása az a Python verziót indítja, amelyikhez létrehoztad a hivatkozást.
Értelemszerűen ahhoz a Python verzióhoz importálod a modulokat, amelyiket elindítottad, vagyis amelyre a python hivatkozás mutat.

A Tkinter Python modul importálása

Példa egy modul importálására...

Python 2

Állítsd be a Python 2-es verziót a python hivatkozáshoz (a módszert fentebb ismertettem).

Telepítsd a modult tartalmazó alkalmazást:

sudo apt-get install python-tk

Indítsd el a Pythont:

python

Importáld a modult:

import Tkinter

Lépj ki a Python alkalmazásból:

Ctrl + D

Teszt:

python -m Tkinter

Python 3

Állítsd be a Python 2-es verziót a python hivatkozáshoz (a módszert fentebb ismertettem).

Telepítsd a modult tartalmazó alkalmazást:

sudo apt-get install python3-tk

Indítsd el a Pythont:

python

Importáld a modult:

import tkinter

Lépj ki a Python alkalmazásból:

Ctrl + D

Teszt:

python -m tkinter

Vedd figyembe az importálásnál és a tesztelésnél is, hogy a Python 2 a modulok nevénél nagy (Tkinter), a Python 3 kis kezdőbetűt (tkinter) használ.

Python Package Installer (pip)

A modulok telepítéséhez használható a pip (Python Package Installer) alkalmazás is.
Dokumentáció: https://pip.pypa.io/en/stable/

Python PPA (tükör)

A Python különböző verziói külső tükör, PPA használatával telepíthetőek.

A PPA: https://launchpad.net/~deadsnakes/+archive/ubuntu/ppa
“deadsnakes” team - New Python Versions

Csak akkor vedd fel a PPA-t, ha tudod, milyen célra kell és azt hogyan fogod kivitelezni!
A rendszer alapértelmezett tükreiről elérhető Python verziók kiválóan alkalmasak a mindennapos használatra.

Használat

Vedd fel a tükröt a szoftverforrások listájába:

sudo add-apt-repository ppa:deadsnakes/ppa

Alkalmazd a változtatást:

sudo apt-get update

A Python verziók telepítéséhez használd valamelyik csomagkezelőt a terminálban (példa: sudo apt-get install python3.5) vagy grafikusan (példa: Synaptic).