Ero sivun ”Python” versioiden välillä

Linux.fista
Siirry navigaatioon Siirry hakuun
Lisätty kirjastoja listaan ja lisätty linkkejä. Sekä muita pieniä parannuksia.
 
(8 välissä olevaa versiota samalta käyttäjältä ei näytetä)
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    = 1990
| 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 ohjelmointikieli, joka on kehitetty olio-ohjelmoinnin periaatteita toteuttavaksi. Se on erityisen helppo oppia, mutta taipuu myös suurempiin projekteihin. Siihen on saatavissa ulkoisia moduuleita ja kirjastoja. Python on tulkattava. Nvidian grafiikkapiirien [[CUDA]]-ohjelmonti on mahdollista tehdä Pythonilla, joten laskenta voidaan antaa grafiikkapiirien suoritettavaksi.


==Moduulit==
'''Python''' on korkean tason, tulkattava ja moniparadigmainen ohjelmointikieli,
*<tt>python-pip</tt> - Moduulien asennusohjelma
joka soveltuu niin komentoriviskripteihin, automaatioon, palvelinohjelmointiin,  
*<tt>Math</tt> - Matemaattiset laskutoimitukset
tieteelliseen laskentaan kuin graafisiin sovelluksiin. Python on erityisen
*<tt>Random</tt> - Arvontaluvut ja satunnaisluvut
suosittu Linux-järjestelmissä, ja monet jakelut sisältävät sen valmiiksi.
*<tt>Tkinter</tt> - Graafiset käyttöliittymät käyttäen helppoa [[Tcl|Tcl:n]] Tk-teknologiaa
*<tt>Os</tt> - Käyttöjärjestelmän palvelut
*<tt>Picle</tt> - Rakenteisen tiedon tallentaminen ja lukeminen
*<tt>Time</tt> -Ajanotto, kellonaika, kalenteri
*<tt>Sys</tt> - Järjestelmän palvelut
*<tt>Zipfile</tt> - [[zip]]-paketit


===Lisäkirjastot===
Pythonin kehitystä johtaa Python Software Foundation ja kielen alkuperäinen
*[[wxPython]] - Graafiset käyttöliittymät
kehittäjä on Guido van Rossum.
*[[pyGame]] - Peliohjelmointimoduuli
*[[pygame_sdl2]] - Peliohjelmointimoduuli [[SDL2]]-ohjelmoitirajapinnalla.
*[[pylint]] - lint tyylinen koodintarkistusohjelma Pythonille
*[[numpy]] - kirjasto numeerista laskentaa varten
*[[scipy]] - kirjasto tieteellistä ohjelmointia varten
*[[matplotlib]] - kirjasto graafien tekemistä varten
*[[pytorch]] ja [[tensorflow]] - kirjastoja tekoälyä ja koneoppimista varten


== Käyttö ==
== Ominaisuudet ==
Pythonia voi opetella kirjoittamalla koodia suoraan Python-tulkkiin (kunhan se on asennettu [[Paketinhallintajärjestelmä|paketinhallinnasta]]):
* Tulkattava ja dynaamisesti tyypitetty
$ python
* Moniparadigmainen (olio-, funktio- ja proseduraalinen ohjelmointi)
>>> print("linux.fi")
* Laaja standardikirjasto
linux.fi
* Selkeä syntaksi ja luettavuus
* Laajennettavissa tuhansilla lisäkirjastoilla (PyPI)
* Erinomainen tuki Linux-ympäristöissä


Yleensä ohjelmat kannattaa kuitenkin tallentaa tiedostoon, jonka tiedostopääte on yleensä <tt>.py</tt>:
== Python Linuxissa ==
<syntaxhighlight lang=python>
=== Asennus ===
#!/usr/bin/env python
Useimmissa Linux-jakeluissa Python 3 on valmiina. Tarvittaessa sen voi asentaa:
# ohjelma.py
 
for i in range(3):
Debian/Ubuntu
    print(i)
<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>


Jonka jälkeen ohjelma ajettaisiin komennolla
== Standardikirjasto ==
$ python ohjelma.py
Pythonin mukana tulee laaja ja monipuolinen standardikirjasto, joka kattaa
Jolloin konsoliin tulostuisi
tiedostojen käsittelyn, prosessit, verkon, tietotyypit, sarjallistamisen,
0
komentorivityökalut ja paljon muuta. Alla on yleisesti käytettyjä ja
1
Linux-ympäristössä hyödyllisiä moduuleita ryhmiteltynä aihealueittain.
2
 
Pythonilla kirjoitetun ohjelman voi ajaa myös suoraan komennolla <tt>./ohjelma.py</tt>, jos tiedoston ensimmäisellä rivillä kerrotaan, että se on tulkattava Python-tulkilla:
=== Tiedostot ja käyttöjärjestelmä ===
#!/usr/bin/env python
* <tt>os</tt> – käyttöjärjestelmän palvelut, tiedostot, prosessit ja ympäristömuuttujat
Tällöin tiedostolla on oltava [[chmod|suoritusoikeudet]].
* <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 ==
* 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, 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
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.
 
Esimerkki ''.gitignore''-tiedostosta.
<syntaxhighlight lang="bash">
venv/
__pycache__/
</syntaxhighlight>


==Graafisia Python käyttöliittymiä==
== Python Linux-järjestelmätyökaluissa ==
* [[PyCrust]] on Python Shell-käyttöliittymä.
Pythonia käytetään laajasti Linux-työkaluissa ja infrastruktuurissa, kuten:
* [[PyShell]] on Python Shell-käyttöliittymä.
* [[Ansible]]
* [[PyPE]] on koodimuokkain.
* Useat jakelujen paketinhallintaskriptit
* [[Spe]] [http://pythonide.stani.be/] on Python koodimuokkain.
* [[GNOME]]- ja [[KDE]]-projektien apuohjelmat
* Järjestelmänhallinnan komentorivityökalut


Suurin osa [[Tekstieditori|tekstieditoreista]] sisältää tuen Pythonille.
== 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]]
*[[CUDA]]
* [[Bash]]
* [[Lua]]


==Aiheesta muualla==
== Aiheesta muualla ==
*[[wikipedia:fi:Python|Python-artikkeli Wikipediassa]]
* [https://www.python.org/ www.python.org]
*[https://ohjelmointi-24.mooc.fi Ilmainen Python 3 -verkkokurssi]
* [https://docs.python.org/3/ docs.python.org]
*[http://www.it.lut.fi/kurssit/08-09/CT20A0200/materiaali/Python_opas_2008.pdf Lappeenrannan teknillisen yliopiston Python-opas]
* [https://automatetheboringstuff.com/ automatetheboringstuff.com]
*[http://www.ohjelmointiputka.net/opas.php?tunnus=python Ohjelmointiputkan Python-opas]
* [https://realpython.com/ realpython.com]
*[http://www.ibiblio.org/pub/multimedia/video/obp/IntroducingPython.mpg Pythonin esittelyvideo]
*[http://www.diveintopython.org/ Dive Into Python] -kirja, luettavissa verkossa
*[https://automatetheboringstuff.com/ Automate The Boring Stuff] Toinen verkossa ilmaiseksi luettava Python-kirja
*[https://opensource.com/article/19/4/managing-python-packages Opas lisäkirjstojen ja pakettien hallinnasta Pythonissa]


{{Ohjelmointikielet}}
{{Ohjelmointikielet}}
[[Luokka:Kehitystyökalut]]
[[Luokka:Kehitystyökalut]]
[[Luokka:Oliopohjaiset ohjelmointikielet]]
[[Luokka:Oliopohjaiset ohjelmointikielet]]

Nykyinen versio 8. tammikuuta 2026 kello 12.15

Linux.fi-wikissä artikkelit käsittelevät yleensä aihettaan siltä osin, kuin se koskee Linuxia ja avoimia/vapaita ohjelmistoja. Yleisluontoisemman artikkelin tästä aiheesta löydät tietosanakirja Wikipediasta.
Python

Paradigma oliopohjainen
Tyypitys vahva, staattinen
Evaluointitapa innokas
Suoritusmalli tulkattava
Muistinhallinta automaattinen
Tekijä(t) Python Software Foundation
Kehittäjä(t) Guido van Rossum
Ensijulkaisu 0.9.0 / helmmikuuta 1991
Vakaa versio 3.10.4  / 24. maaliskuuta 2022
Kehitysversio 3.11.0a6  / 7. maaliskuuta 2022
Tyyppi ohjelmointikieli, kehitystyökalut
Lisenssi GPL [1]
Kotisivu python.org
Lähdekoodi 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

[muokkaa]
  • 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

[muokkaa]

Asennus

[muokkaa]

Useimmissa Linux-jakeluissa Python 3 on valmiina. Tarvittaessa sen voi asentaa:

Debian/Ubuntu

sudo apt install python3 python3-pip

Fedora

sudo dnf install python3 python3-pip

Arch Linux

sudo pacman -S python python-pip

Python-tulkin käyttö

[muokkaa]

Interaktiivinen tulkki:

python3
>>> print("Hei Linux.fi!")

Python-tiedoston suorittaminen:

#!/usr/bin/env python3
print("Hei!")

Ohjelmalle on annettava suoritusoikeudet.

chmod +x ohjelma.py
./ohjelma.py

Standardikirjasto

[muokkaa]

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ä

[muokkaa]
  • os – käyttöjärjestelmän palvelut, tiedostot, prosessit ja ympäristömuuttujat
  • pathlib – tiedostopolkujen käsittely oliopohjaisesti (suositeltava vaihtoehto os.path-moduulille)
  • shutil – tiedostojen ja hakemistojen kopiointi, siirto ja poistaminen
  • stat – tiedostojen tilatiedot
  • tempfile – väliaikaistiedostot ja -hakemistot

Prosessit ja komentorivi

[muokkaa]
  • sys – Python-tulkin asetukset ja komentoriviparametrit
  • argparse – komentoriviparametrien käsittely
  • subprocess – ulkoisten komentojen suorittaminen
  • logging – lokitus ja diagnostiikka
  • venv – virtuaaliympäristöjen luonti

Aika ja päivämäärät

[muokkaa]
  • time – ajanotto, viiveet ja aikaleimat
  • datetime – päivämäärät ja kellonajat (suositeltavampi ja monipuolisempi kuin time)
  • calendar – kalenteritoiminnot

Data, tietotyypit ja sarjallistaminen

[muokkaa]
  • json – JSON-tiedostojen käsittely
  • pickle – Python-olioiden sarjallistaminen ja tallennus
  • csv – CSV-tiedostojen luku ja kirjoitus
  • sqlite3 – sisäänrakennettu SQLite-tietokanta
  • dataclasses – helppo tapa määritellä tietorakenteita (Python 3.7+)

Matematiikka ja satunnaisuus

[muokkaa]
  • math – matemaattiset funktiot ja laskutoimitukset
  • statistics – perus tilastolliset laskut
  • random – satunnaislukujen generointi ja arvonnat
  • fractions – rationaaliluvut
  • decimal – tarkka desimaalilaskenta

Verkko ja protokollat

[muokkaa]
  • socket – matalan tason verkkoyhteydet
  • http.client – HTTP-yhteydet
  • urllib – URL-käsittely ja verkkopyynnöt
  • ipaddress – IPv4- ja IPv6-osoitteiden käsittely

Pakkaus ja arkistointi

[muokkaa]
  • zipfile – ZIP-pakettien luonti ja purku
  • tarfile – TAR-arkistot
  • gzip – gzip-pakkaus

Graafiset käyttöliittymät

[muokkaa]
  • tkinter – Pythonin mukana tuleva yksinkertainen käyttöliittymäkirjasto

Suositut lisäkirjastot

[muokkaa]
  • 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

[muokkaa]

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, 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 tai Pythonin pakettivarastosta (PyPI).

Virtuaaliympäristön luominen ja käyttö

[muokkaa]

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::

python3 -m venv venv

Tämä luo hakemiston venv, joka sisältää projektikohtaisen Python-tulkin ja kirjastot. Virtuaaliympäristö otetaan käyttöön aina ennen projektin komentoja:

source venv/bin/activate

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:

deactivate

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.

Esimerkki .gitignore-tiedostosta.

venv/
__pycache__/

Python Linux-järjestelmätyökaluissa

[muokkaa]

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

[muokkaa]

Katso myös

[muokkaa]

Aiheesta muualla

[muokkaa]
v  k  m
Ohjelmointikielet
 Käännettävät  Assembly | C | C++ | Go | Haxe | Haskell | Java | Pascal
 Tulkattavat  Python | Perl | PHP | Ruby
 -skriptikielet  Lua | Bash
 GPGPU  OpenCL
 muut  GLSL