Ero sivun ”Python” versioiden välillä
Siirry navigaatioon
Siirry hakuun
Vähän suurempi päivitys |
|||
| (7 välissä olevaa versiota samalta käyttäjältä ei näytetä) | |||
| Rivi 44: | Rivi 44: | ||
Useimmissa Linux-jakeluissa Python 3 on valmiina. Tarvittaessa sen voi asentaa: | Useimmissa Linux-jakeluissa Python 3 on valmiina. Tarvittaessa sen voi asentaa: | ||
Debian/Ubuntu | |||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
sudo apt install python3 python3-pip | sudo apt install python3 python3-pip | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Fedora | |||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
sudo dnf install python3 python3-pip | sudo dnf install python3 python3-pip | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Arch Linux | |||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
sudo pacman -S python python-pip | sudo pacman -S python python-pip | ||
| Rivi 79: | Rivi 79: | ||
== Standardikirjasto == | == Standardikirjasto == | ||
Pythonin mukana tulee laaja | Pythonin mukana tulee laaja ja monipuolinen standardikirjasto, joka kattaa | ||
* | tiedostojen käsittelyn, prosessit, verkon, tietotyypit, sarjallistamisen, | ||
* | komentorivityökalut ja paljon muuta. Alla on yleisesti käytettyjä ja | ||
* | Linux-ympäristössä hyödyllisiä moduuleita ryhmiteltynä aihealueittain. | ||
* | |||
* | === Tiedostot ja käyttöjärjestelmä === | ||
* | * <tt>os</tt> – käyttöjärjestelmän palvelut, tiedostot, prosessit ja ympäristömuuttujat | ||
* | * <tt>pathlib</tt> – tiedostopolkujen käsittely oliopohjaisesti (suositeltava vaihtoehto <tt>os.path</tt>-moduulille) | ||
* | * <tt>shutil</tt> – tiedostojen ja hakemistojen kopiointi, siirto ja poistaminen | ||
* <tt>stat</tt> – tiedostojen tilatiedot | |||
* <tt>tempfile</tt> – väliaikaistiedostot ja -hakemistot | |||
=== Prosessit ja komentorivi === | |||
* <tt>sys</tt> – Python-tulkin asetukset ja komentoriviparametrit | |||
* <tt>argparse</tt> – komentoriviparametrien käsittely | |||
* <tt>subprocess</tt> – ulkoisten komentojen suorittaminen | |||
* <tt>logging</tt> – lokitus ja diagnostiikka | |||
* <tt>venv</tt> – virtuaaliympäristöjen luonti | |||
=== Aika ja päivämäärät === | |||
* <tt>time</tt> – ajanotto, viiveet ja aikaleimat | |||
* <tt>datetime</tt> – päivämäärät ja kellonajat (suositeltavampi ja monipuolisempi kuin <tt>time</tt>) | |||
* <tt>calendar</tt> – kalenteritoiminnot | |||
=== Data, tietotyypit ja sarjallistaminen === | |||
* <tt>json</tt> – JSON-tiedostojen käsittely | |||
* <tt>pickle</tt> – Python-olioiden sarjallistaminen ja tallennus | |||
* <tt>csv</tt> – CSV-tiedostojen luku ja kirjoitus | |||
* <tt>sqlite3</tt> – sisäänrakennettu SQLite-tietokanta | |||
* <tt>dataclasses</tt> – helppo tapa määritellä tietorakenteita (Python 3.7+) | |||
=== Matematiikka ja satunnaisuus === | |||
* <tt>math</tt> – matemaattiset funktiot ja laskutoimitukset | |||
* <tt>statistics</tt> – perus tilastolliset laskut | |||
* <tt>random</tt> – satunnaislukujen generointi ja arvonnat | |||
* <tt>fractions</tt> – rationaaliluvut | |||
* <tt>decimal</tt> – tarkka desimaalilaskenta | |||
=== Verkko ja protokollat === | |||
* <tt>socket</tt> – matalan tason verkkoyhteydet | |||
* <tt>http.client</tt> – HTTP-yhteydet | |||
* <tt>urllib</tt> – URL-käsittely ja verkkopyynnöt | |||
* <tt>ipaddress</tt> – IPv4- ja IPv6-osoitteiden käsittely | |||
=== Pakkaus ja arkistointi === | |||
* <tt>zipfile</tt> – ZIP-pakettien luonti ja purku | |||
* <tt>tarfile</tt> – TAR-arkistot | |||
* <tt>gzip</tt> – gzip-pakkaus | |||
=== Graafiset käyttöliittymät === | |||
* <tt>tkinter</tt> – Pythonin mukana tuleva yksinkertainen käyttöliittymäkirjasto | |||
== Suositut lisäkirjastot == | == 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 == | == Suositut graafiset käyttöliittymät == | ||
Pythonilla voidaan toteuttaa graafisia käyttöliittymiä useilla eri kirjastoilla. | Pythonilla voidaan toteuttaa graafisia käyttöliittymiä useilla eri kirjastoilla. | ||
Linux-ympäristöissä suosituimpia ovat: | 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, joka soveltuu sekä kevyisiin että vaativiin sovelluksiin. | |||
* | * Tkinter – Pythonin mukana tuleva yksinkertainen käyttöliittymäkirjasto, joka on 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, joka 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 | Nämä kirjastot ovat saatavilla useimpien Linux-jakeluiden pakettivarastoista | ||
| Rivi 128: | Rivi 158: | ||
=== Virtuaaliympäristön luominen ja käyttö === | === Virtuaaliympäristön luominen ja käyttö === | ||
Virtuaaliympäristö (''virtual environment'', venv) on Pythonin työkalu, | |||
jolla projektikohtaiset kirjastot ja riippuvuudet voidaan eristää muusta | jolla projektikohtaiset kirjastot ja riippuvuudet voidaan eristää muusta | ||
järjestelmästä. Tämä on erityisen tärkeää Linux-järjestelmissä, joissa | järjestelmästä. Tämä on erityisen tärkeää Linux-järjestelmissä, joissa | ||
| Rivi 135: | Rivi 165: | ||
Virtuaaliympäristöjen käyttö on suositeltavaa, koska: | 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:: | Virtuaaliympäristö luodaan komennolla:: | ||
| Rivi 172: | Rivi 196: | ||
lisätään yleensä versionhallinnan ohituksiin, kuten ''.gitignore''-tiedostoon. | lisätään yleensä versionhallinnan ohituksiin, kuten ''.gitignore''-tiedostoon. | ||
Esimerkki ''.gitignore''-tiedostosta. | |||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
venv/ | venv/ | ||
| Rivi 186: | Rivi 210: | ||
== Kehitystyökalut == | == Kehitystyökalut == | ||
* | * [[VS Code]] – laaja Python-tuki | ||
* | * [[PyCharm]] | ||
* | * [[Geany]] | ||
* | * [[Kate]], [[Gedit]], [[Mousepad]] | ||
* | * [[IDLE]] – Pythonin mukana tuleva editori | ||
== Katso myös == | == Katso myös == | ||