Python
Alle programmeringsspråk har sine sterke og svake sider. Hvilket språk vi velger bør være avhengig av hvilke oppgaver vi skal løse. Python er et "ubyråkratisk" språk som er godt egnet til tekstbehandling, lasting av nettressurser, enkle beregninger og til CGI-programmering. Python er et ganske komplett objektorientert språk og kan brukes, alene eller sammen med biblioteker skrevet i andre språk, til det meste. Bruken i dette materialet utnytter ikke alle disse mulighetene. På den annen side er det ikke noe vi gjør i dette materialet som vi ikke kan gjøre i andre språk som C, C++, Java, C#.
Python er valgt fordi det gjøre en del "typiske" ting enkelt og fordi språket er stabilt og kan kjøres på alle aktuelle plattformer. Vi kan f.eks. grovteste CGI-programmene våre på en Windows-klient og så flytte dem over på en Linux-server.
Dette er ikke noen lærebok i Python. Det er tilgjengelig en rekke bøker (se referenser nedenfor) og nettressurser for å lære Python.
Jeg arbeider med den siste versjonen jeg får tak i, på Windows XP og jeg bruker Pythons egen IDLE-editor. Det er altså de omgivelsene som dukker opp når jeg starter Python under Windows. Det er mange andre måter å organisere arbeid med Python på enn det jeg har som referanse her. CGI-skriptene jeg lager kjøres på en Linux-tjener.
.PYTHONPATH
Vi må fortelle operativsystemet hvor vi akter å plassere våre Pythonmoduler. På samme måte som Java har sin classpath, har Python sin pythonpath. Måten å sette dem opp på er helt parallelle. Jeg åpner Settings/Controlpanel og starter System. Her velger jeg Advanced og klikker på knappen: Environment Variables. Så leter jeg etter PYTHONPATH i lista med overskriften System variables. Hvis den finnes så ber jeg om å få editere (EDIT) den. Hvis den ikke finnes så lager jeg ny (NEW).
På min maskin ser det i øyeblikket slik ut:
Jeg har alle mine Pythonmoduler samlet i en katalog: c:\articles\ml\pykode
Syntaksen i pathlista er slik at alle pather er adskilt med ; Husk at . representerer pather som er satt andre steder. Ta alltid med . - pathen, dersom du er i tvil.
.Å editere en modul
Jeg pleier å la Python administrere editorvinduene mine. Det vil si at jeg går i menyen File og velger Open Module. Hvis PYTHONPATH er satt riktig, vil IDLE finne fram den riktige fila når jeg skriver inn navnet på en eksisterende modul, f.eks. bokxml. Jeg får da et nytt Pythonvindu med mange av de samme egenskapene som det første vinduet som åpner seg som IDLE. Det er selvsagt ikke noe i veien for å editere i en annen editor.
I alle fall kjører jeg testing fra IDLE, som vist nedenfor.
.Testing av modulen
Starten på en arbeidssekvens der jeg arbeider med modulen boktoxml kan se slik ut, i IDLE-vinduet:
Python 2.2 (#28, Dec 21 2001, 12:21:22) [MSC 32 bit (Intel)] on win32
Type "copyright", "credits" or "license" for more information.
IDLE 0.8 -- press F1 for help
>>> import boktoxml
>>> def test():
reload(boktoxml)
bokxml.produce("c:\\articles\\ml\\python\\bokliste.txt")
>>> test()
>>> test()
>>> test()
Jeg lager meg en testprosedyre, test, for anledningen. Den automatiserer to ting: oppdatering av siste versjon av modulen jeg tester og et kall på den aktuelle funksjonen med den eller de parametrene jeg bruker som testgrunnlag. Den typiske arbeidssyklusen blir da å:
- redigere i det vinduet jeg har kildekoden, boktoxml.py
- kalle test() i IDLE-vinduet
- studere resultatet hvor det måtte dukke opp, f.eks i en nettleser eller som feilmelding i IDLE-vinduet
- redigere i det vinduet jeg har kildekoden, boktoxml.py
- osv