hvordan skriver og starter man python programmer? Gedit? Emnet er løst
-
- Redaktør
- Indlæg: 4430
- Tilmeldt: 6. jan 2009, 22:01
- Geografisk sted: København
Re: hvordan skriver og starter man python programmer? Gedit?
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:
Gem det f.eks. som print_version.py og kør:
Derefter man se at hvis man kører den med kommandoen
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).
Python 3.4.3
Måske vidste i det i forvejen, men jeg havde ikke tænkt på det.
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
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.
-
- 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?
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:
- Virtual Environments
http://docs.python-guide.org/en/latest/dev/virtualenvs/ - Virtualenv Tutorial Part 2
http://www.simononsoftware.com/virtualenv-tutorial-part-2/ - A Primer on virtualenv
http://iamzed.com/2009/05/07/a-primer-on-virtualenv/
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
Hvem er online
Brugere der læser dette forum: [Bot] og 0 gæster