Ero sivun ”Python” versioiden välillä
Siirry navigaatioon
Siirry hakuun
Lisätty kirjastoja listaan ja lisätty linkkejä. Sekä muita pieniä parannuksia. |
Vähän suurempi päivitys |
||
| Rivi 8: | Rivi 8: | ||
| evaluointitapa = innokas | | evaluointitapa = innokas | ||
| muistinhallinta = [[wikipedia:fi:Automaattinen_roskienkeräys|automaattinen]] | | muistinhallinta = [[wikipedia:fi:Automaattinen_roskienkeräys|automaattinen]] | ||
| tekijä = | | tekijä = Python Software Foundation | ||
| kehittäjä = Guido van Rossum | | kehittäjä = Guido van Rossum | ||
| moottori = | | moottori = | ||
| ensijulkaisu = | | ensijulkaisu = 0.9.0 / helmmikuuta 1991 | ||
| vakaaversio = 3.10.4 | | vakaaversio = 3.10.4 | ||
| vakaapvm = [https://www.python.org/downloads/release/python-3104/ 24. maaliskuuta 2022] | | vakaapvm = [https://www.python.org/downloads/release/python-3104/ 24. maaliskuuta 2022] | ||
| Rivi 23: | Rivi 23: | ||
| lähdekoodi = [https://github.com/python github.com/python] | | lähdekoodi = [https://github.com/python github.com/python] | ||
}} | }} | ||
'''Python''' on korkean tason, tulkattava ja moniparadigmainen ohjelmointikieli, | |||
joka soveltuu niin komentoriviskripteihin, automaatioon, palvelinohjelmointiin, | |||
tieteelliseen laskentaan kuin graafisiin sovelluksiin. Python on erityisen | |||
suosittu Linux-järjestelmissä, ja monet jakelut sisältävät sen valmiiksi. | |||
Pythonin kehitystä johtaa Python Software Foundation ja kielen alkuperäinen | |||
kehittäjä on Guido van Rossum. | |||
== | == Ominaisuudet == | ||
* Tulkattava ja dynaamisesti tyypitetty | |||
* Moniparadigmainen (olio-, funktio- ja proseduraalinen ohjelmointi) | |||
* Laaja standardikirjasto | |||
* Selkeä syntaksi ja luettavuus | |||
* Laajennettavissa tuhansilla lisäkirjastoilla (PyPI) | |||
* Erinomainen tuki Linux-ympäristöissä | |||
== Python Linuxissa == | |||
<syntaxhighlight lang=python> | === Asennus === | ||
#!/usr/bin/env | Useimmissa Linux-jakeluissa Python 3 on valmiina. Tarvittaessa sen voi asentaa: | ||
; Debian/Ubuntu | |||
<syntaxhighlight lang="bash"> | |||
sudo apt install python3 python3-pip | |||
</syntaxhighlight> | |||
; Fedora | |||
<syntaxhighlight lang="bash"> | |||
sudo dnf install python3 python3-pip | |||
</syntaxhighlight> | |||
; Arch Linux | |||
<syntaxhighlight lang="bash"> | |||
sudo pacman -S python python-pip | |||
</syntaxhighlight> | |||
=== Python-tulkin käyttö === | |||
Interaktiivinen tulkki: | |||
<syntaxhighlight lang="bash"> | |||
python3 | |||
>>> print("Hei Linux.fi!") | |||
</syntaxhighlight> | |||
Python-tiedoston suorittaminen: | |||
<syntaxhighlight lang="python"> | |||
#!/usr/bin/env python3 | |||
print("Hei!") | |||
</syntaxhighlight> | |||
Ohjelmalle on annettava suoritusoikeudet. | |||
<syntaxhighlight lang="bash"> | |||
chmod +x ohjelma.py | |||
./ohjelma.py | |||
</syntaxhighlight> | </syntaxhighlight> | ||
== Standardikirjasto == | |||
Pythonin mukana tulee laaja valikoima moduuleita. Hyödyllisiä Linux-käytössä: | |||
* '''os''' – käyttöjärjestelmätoiminnot | |||
* '''sys''' – tulkin asetukset ja argumentit | |||
* '''pathlib''' – tiedostopolut oliopohjaisesti | |||
* '''subprocess''' – ulkoisten komentojen suorittaminen | |||
Pythonilla | * '''json''' – JSON-tiedostojen käsittely | ||
* '''argparse''' – komentoriviparametrit | |||
* '''logging''' – lokitus | |||
* '''venv''' – virtuaaliympäristöt | |||
== Suositut lisäkirjastot == | |||
* '''requests''' – HTTP-kyselyt | |||
* '''numpy''', '''scipy''' – numeerinen laskenta | |||
* '''pandas''' – taulukkomuotoinen data | |||
* '''matplotlib''', '''seaborn''' – visualisointi | |||
* '''pytest''' – testaus | |||
* '''pygame''' – peliohjelmointi | |||
* '''PyQt''', '''GTK (PyGObject)''' – graafiset käyttöliittymät | |||
* '''pytorch''', '''tensorflow''' – koneoppiminen | |||
== Suositut graafiset käyttöliittymät == | |||
Pythonilla voidaan toteuttaa graafisia käyttöliittymiä useilla eri kirjastoilla. | |||
Linux-ympäristöissä suosituimpia ovat: | |||
* '''[[GTK]] (PyGObject)''' – GNOME-ympäristön käyttämä kirjasto; hyvä valinta | |||
natiivin Linux-sovelluksen rakentamiseen. | |||
* '''[[Qt]] (PyQt / PySide)''' – monialustainen ja laaja käyttöliittymäkirjasto; | |||
soveltuu sekä kevyisiin että vaativiin sovelluksiin. | |||
* '''Tkinter''' – Pythonin mukana tuleva yksinkertainen käyttöliittymäkirjasto; | |||
helppo aloittelijoille ja pieniin työkaluihin. | |||
* '''customtkinter''' – Tkinterin modernisoitu versio, joka tarjoaa tumman teeman, | |||
nykyaikaiset widgetit ja paremman ulkoasun ilman ulkoisia riippuvuuksia. | |||
* '''Kivy''' – suunniteltu kosketusnäytöille ja monialustaisiin sovelluksiin | |||
(Linux, Windows, Android, iOS). | |||
* '''wxPython''' – natiivikomponentteja hyödyntävä kirjasto, joka toimii hyvin | |||
useilla alustoilla. | |||
* '''Dear PyGui''' – moderni ja nopea Immediate Mode -käyttöliittymäkirjasto, | |||
soveltuu erityisesti työkaluohjelmiin ja visualisointeihin. | |||
* '''LexGUI (lex)''' – kevyt ja moderni käyttöliittymäkirjasto, joka tarjoaa | |||
yksinkertaisen API:n ja tyylikkään ulkoasun; sopii pieniin työkaluihin ja | |||
prototyyppeihin. | |||
* '''Flet''' – moderni ja monialustainen käyttöliittymäkirjasto, joka mahdollistaa | |||
web-, desktop- ja mobiilisovellusten rakentamisen Pythonilla ilman | |||
HTML-, CSS- tai JavaScript-osaamista. Sovellukset käyttävät Flutterin | |||
komponentteja, ja ne voidaan ajaa paikallisesti tai palvelimelta käsin. | |||
Nämä kirjastot ovat saatavilla useimpien Linux-jakeluiden pakettivarastoista | |||
tai Pythonin pakettivarastosta ([[PyPI]]). | |||
=== Virtuaaliympäristön luominen ja käyttö === | |||
'''Virtuaaliympäristö''' (''virtual environment'', venv) on Pythonin työkalu, | |||
jolla projektikohtaiset kirjastot ja riippuvuudet voidaan eristää muusta | |||
järjestelmästä. Tämä on erityisen tärkeää Linux-järjestelmissä, joissa | |||
jakelun omat Python-paketit voivat olla eri versioisia kuin kehityksessä | |||
tarvittavat. | |||
Virtuaaliympäristöjen käyttö on suositeltavaa, koska: | |||
* '''Projektit pysyvät erillään toisistaan''' – eri projektit voivat käyttää | |||
eri versioita samoista kirjastoista ilman ristiriitoja. | |||
* '''Järjestelmän Python pysyy puhtaana''' – järjestelmän omia työkaluja | |||
(esim. paketinhallinta) ei rikota asentamalla globaaleja paketteja. | |||
* '''Toistettavuus paranee''' – projektin riippuvuudet voidaan määritellä | |||
tarkasti (esim. ''requirements.txt''), mikä helpottaa kehitystä ja | |||
julkaisemista. | |||
* '''Turvallisuus paranee''' – eristetty ympäristö vähentää riskiä, että | |||
kolmannen osapuolen kirjastot vaikuttaisivat järjestelmätasoisiin | |||
komentoihin tai palveluihin. | |||
Virtuaaliympäristö luodaan komennolla:: | |||
<syntaxhighlight lang="bash"> | |||
python3 -m venv venv | |||
</syntaxhighlight> | |||
Tämä luo hakemiston ''venv'', joka sisältää projektikohtaisen Python-tulkin ja | |||
kirjastot. Virtuaaliympäristö otetaan käyttöön aina ennen projektin komentoja: | |||
<syntaxhighlight lang="bash"> | |||
source venv/bin/activate | |||
</syntaxhighlight> | |||
Kun ympäristö on aktivoitu, komentorivin alkuun ilmestyy yleensä ympäristön nimi | |||
(esimerkiksi ''(venv)''), ja kaikki ''pip''-asennukset kohdistuvat vain tähän | |||
ympäristöön. | |||
Virtuaaliympäristö poistetaan käytöstä komennolla: | |||
<syntaxhighlight lang="bash"> | |||
deactivate | |||
</syntaxhighlight> | |||
Virtuaaliympäristö kannattaa pitää versionhallinnan ulkopuolella, koska se sisältää | |||
paljon automaattisesti generoituja tiedostoja ja riippuvuuksia, jotka voidaan | |||
uudelleen luoda tarpeen mukaan. Ympäristön hakemisto (esimerkiksi ''venv'') | |||
lisätään yleensä versionhallinnan ohituksiin, kuten ''.gitignore''-tiedostoon. | |||
Esimmerkki ''.gitignore''-tiedostosta. | |||
<syntaxhighlight lang="bash"> | |||
venv/ | |||
__pycache__/ | |||
</syntaxhighlight> | |||
== | == Python Linux-järjestelmätyökaluissa == | ||
* [[ | Pythonia käytetään laajasti Linux-työkaluissa ja infrastruktuurissa, kuten: | ||
* [[ | * [[Ansible]] | ||
* Useat jakelujen paketinhallintaskriptit | |||
* | * [[GNOME]]- ja [[KDE]]-projektien apuohjelmat | ||
* Järjestelmänhallinnan komentorivityökalut | |||
== Kehitystyökalut == | |||
* '''[[VS Code]]''' – laaja Python-tuki | |||
* '''[[PyCharm]]''' | |||
* '''[[Geany]]''' | |||
* '''[[Kate]]''', '''[[Gedit]]''', '''[[Mousepad]]''' | |||
* '''[[IDLE]]''' – Pythonin mukana tuleva editori | |||
== Katso myös == | == Katso myös == | ||
*[[Perl]] | * [[Perl]] | ||
*[[Ruby]] | * [[Ruby]] | ||
*[[ | * [[Bash]] | ||
* [[Lua]] | |||
==Aiheesta muualla== | == Aiheesta muualla == | ||
* [https://www.python.org/ www.python.org] | |||
*[https:// | * [https://docs.python.org/3/ docs.python.org] | ||
* [https://automatetheboringstuff.com/ automatetheboringstuff.com] | |||
*[ | * [https://realpython.com/ realpython.com] | ||
*[https://automatetheboringstuff.com/ | |||
*[https:// | |||
{{Ohjelmointikielet}} | {{Ohjelmointikielet}} | ||
[[Luokka:Kehitystyökalut]] | [[Luokka:Kehitystyökalut]] | ||
[[Luokka:Oliopohjaiset ohjelmointikielet]] | [[Luokka:Oliopohjaiset ohjelmointikielet]] | ||