Python-Version herausbekommen :)

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Necoro
User
Beiträge: 24
Registriert: Freitag 23. Dezember 2005, 01:11
Wohnort: Stuttgart
Kontaktdaten:

hmmm ... hab schon n bissken im forum gesucht - aber nix gefunden :) - gibt es eine Möglichkeit, die aktuell laufende Python-Version herauszufeinden?

Grund: Wenn Python >= 2.4. ist, möchte ich das Modul subprocess laden - und wenn die Version kleiner ist, eben nicht :)
Inter Deum Et Diabolum Est!
Benutzeravatar
Rebecca
User
Beiträge: 1662
Registriert: Freitag 3. Februar 2006, 12:28
Wohnort: DN, Heimat: HB
Kontaktdaten:

Du kannst das Laden eines Moduls einfach ein eine try-Block einschliessen.

Code: Alles auswählen

try:
    import subprocess;
except ImportError:
    print "Module subprocess not available";
else:
    #do someting...
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

Necoro hat geschrieben:gibt es eine Möglichkeit, die aktuell laufende Python-Version herauszufeinden?
Hi Necoro!

Ich würde wie Rebecca mit try und except arbeiten. Aber um die Frage vollständig zu beantworten:

Code: Alles auswählen

>>> import sys
>>> sys.version
'2.4 (#60, Nov 30 2004, 11:49:19) [MSC v.1310 32 bit (Intel)]'
>>> sys.version_info
(2, 4, 0, 'final', 0)
>>> 
mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Necoro hat geschrieben:Grund: Wenn Python >= 2.4. ist, möchte ich das Modul subprocess laden - und wenn die Version kleiner ist, eben nicht :)
Du kannst subprocess einfach nachrüsten, siehe:
http://www.python-forum.de/viewtopic.php?p=33403#33403

Wenn du subprocess.py von Python 2.4 in ein Unterverzeichnis (z.B. backports) packst, könntest du folgendes tun:

Code: Alles auswählen

try:
    import subprocess
except ImportError:
    from backports import subprocess
Im Unterverzeichnis ./backports muß natürlich eine leere __init__.py Datei liegen!

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Necoro
User
Beiträge: 24
Registriert: Freitag 23. Dezember 2005, 01:11
Wohnort: Stuttgart
Kontaktdaten:

jo ... thx :)
Inter Deum Et Diabolum Est!
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Ach, zum ursprünglichen Problem: http://wiki.python.de/Python_Version_abfragen

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Joghurt
User
Beiträge: 877
Registriert: Dienstag 15. Februar 2005, 15:07

Necoro hat geschrieben:Grund: Wenn Python >= 2.4. ist, möchte ich das Modul subprocess laden - und wenn die Version kleiner ist, eben nicht :)
Die bessere Lösung wurde ja schon gepostet.

Anstatt zu versuchen, einen Fehler zu verhindern (indem du dir überlegst, wann er auftreten kann), ist es besser, auf den Fehler zu reagieren.

Denn was machst du, wenn z.B. subprocess nicht unter FooBar läuft, oder jemand subprocess nach 2.3 portiert hat, etc, pp.

Wenn du irgendwo hinmusst, schaust du ja auch nicht erst in den Tank deines Autos, kontrollierst dann, ob der Luftfilter sauber ist, und kommst dann zu dem Schluss, dass du jetzt nur den Schlüssel umdrehen und Gas geben musst, um zum Ziel zu kommen. (Und wenn der Motor nicht läuft, bleibst du stumpf im Auto sitzen und beharrst darauf, dass der Motor läuft, denn du hast ja jede Fehlerquelle ausgeschlossen)
Vielmehr drehst du gleich den Schlüssel um, und wenn der Motor nicht anspringt, fährst du halt mit dem Bus

Edit: typo
Zuletzt geändert von Joghurt am Dienstag 21. März 2006, 20:05, insgesamt 1-mal geändert.
henning
User
Beiträge: 274
Registriert: Dienstag 26. Juli 2005, 18:37

Die Metapher mit dem Auto für EAFP is Klasse, darf man dich damit zietieren oder kommt das aus einer anderen Quelle?
Joghurt
User
Beiträge: 877
Registriert: Dienstag 15. Februar 2005, 15:07

Darft mich gerne Zitieren, aber nur, wenn du mit verräts, was EAFP ist.

"Europäische Akademie für Finanzplanung" sowie "European Association of Fish Pathologists" ist es ja wohl nicht...
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Joghurt hat geschrieben:Darft mich gerne Zitieren, aber nur, wenn du mit verräts, was EAFP ist.

"Europäische Akademie für Finanzplanung" sowie "European Association of Fish Pathologists" ist es ja wohl nicht...
Nein, wahrlich nicht :) Easier to ask for forgiveness than permission
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
henning
User
Beiträge: 274
Registriert: Dienstag 26. Juli 2005, 18:37

@Joghurt: Sorry für die unaufgelöste Abkürzung, hatte angenommen, das ist den meisten Pythoniern ein Begriff ,-)
BlackJack

try:

Womit wir jetzt EAFP mal live gesehen haben. LBYL wäre es gewesen gewesen wenn Henning erstmal gefragt hätte ob denn auch alle die Abkürzung EAFP kennen. :-)

catch AbbrvError:

LBYL = Look Before You Leap
Joghurt
User
Beiträge: 877
Registriert: Dienstag 15. Februar 2005, 15:07

BlackJack hat geschrieben:catch AbbrvError:
Ähem...

Das "raise"t einen SyntaxError ;)
BlackJack

Oh man, das ist vielleicht peinlich... :oops:
Antworten