hvordan skriver og starter man python programmer? Gedit?

Få hjælp til at sætte programmer eller funktioner op.
zob
Redaktør
Indlæg: 4430
Tilmeldt: 6. jan 2009, 22:01
Geografisk sted: København

Re: hvordan skriver og starter man python programmer? Gedit?

Indlæg af zob »

Det er egentlig meget sjovt. Det gælder åbenbart kun hvis man kører python "agnostisk" at man kan angive hvilken version den skal bruge med en shebang. Det havde jeg ikke tænkt på, hvilket jo er et tydeligt bevis på at jeg har brugt for lidt tid sammen med python.

Et eksempel. Tag denne kode:

Kode: Vælg alt

#!/usr/bin/env python3
import sys

v = 'Python ' + str(sys.version_info[0]) + '.' + str(sys.version_info[1]) + '.' + str(sys.version_info[2])

print (v)

Gem det f.eks. som print_version.py og kør:

Kode: Vælg alt

chmod +x print_version.py


Derefter man se at hvis man kører den med kommandoen

Kode: Vælg alt

python print_version.py
Får man resultatet:
Python 2.7.10
Den bruger altså systemets standardversion.
Hvis man derimod afvikler med ./ så retter den ind efter den version der er angivet efter shebang (i toppen).

Kode: Vælg alt

./ print_version.py

Python 3.4.3

Måske vidste i det i forvejen, men jeg havde ikke tænkt på det.
lath
Indlæg: 5095
Tilmeldt: 27. apr 2008, 02:16
IRC nickname: lars_t_h
Geografisk sted: Fyn

Re: hvordan skriver og starter man python programmer? Gedit?

Indlæg af lath »

thj01 skrev:Python 3.4 ... something er installeret. Men geany anvender Python 2.x out-of-the-box.

Du kan løse problemet på to måder enten igennem GUI, hvor du skal gå ind i menuen: Build -> Set build commands og sætte et 3 tal bagved python i Compile og execute.

Så kalder [F5] python3 i stedet.

Du kan også ændre det symbolske link der starter python op. Det ligger i /usr/bin:

Kode: Vælg alt

ls -al /usr/bin | grep python


For at ændre det symbolske link gør du følgende:

Kode: Vælg alt

cd /usr/bin
sudo rm python
sudo ln -s python3.4 python


Fremgangsmåden er inspireret herfra http://askubuntu.com/questions/682869/i ... ng-apt-get, hvor jeg forsøgte mig med at lægge python 3.5 ind i stedet - men der er vist lidt quirky endnu, så jeg rullede det tilbage

Det betyder så, at alle programmer der kalder python fremover rammer python3 ... Men det er også hvad man satser på bliver standarden i 16.04 LTS så vidt jeg har læst mig frem til, da man gerne vil af med Python 2.X

At rette på sytem-niveau er måske ikke så god en ide, hvis Debian/Canonical pakker alle Python 2.x pakker til at tro at /usr/bin/python er Python 2.x fortolkeren.
Jeg ville aldrig gøre det (fordi at vi har: virtualenv).

Canonical har og er i gang med at udfase Python 2.x, så lige nu er det ikke helt så dårlig en ide at ændre på /usr/bin/python sym-linket, som det har været, men alligevel ... .

Det er bedre at lave en virtualenv:.
Mere om Python Virtual Enviroments:

Jeg bemærker lige at http://docs.python-guide.org/en/latest/ er hjemsted for The Hitchhiker’s Guide to Python!, som er en rigtig god guide.

/Lars
Jeg er Software ingeniør (Diplomingeniør) i Informationsteknologi og indlejede systemer, hvor indlejrede systemer er computer (microcontroller) + elektronik i for eksempel et TV, en router, en vaskemaskine og den slags