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
Python-Version herausbekommen :)
- 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...
- gerold
- Python-Forum Veteran
- Beiträge: 5555
- Registriert: Samstag 28. Februar 2004, 22:04
- Wohnort: Oberhofen im Inntal (Tirol)
- Kontaktdaten:
Hi Necoro!Necoro hat geschrieben:gibt es eine Möglichkeit, die aktuell laufende Python-Version herauszufeinden?
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)
>>>
Gerold
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
- jens
- Python-Forum Veteran
- Beiträge: 8502
- Registriert: Dienstag 10. August 2004, 09:40
- Wohnort: duisburg
- Kontaktdaten:
Du kannst subprocess einfach nachrüsten, siehe:Necoro hat geschrieben:Grund: Wenn Python >= 2.4. ist, möchte ich das Modul subprocess laden - und wenn die Version kleiner ist, eben nicht
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
- 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
Die bessere Lösung wurde ja schon gepostet.Necoro hat geschrieben:Grund: Wenn Python >= 2.4. ist, möchte ich das Modul subprocess laden - und wenn die Version kleiner ist, eben nicht
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.
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Nein, wahrlich nicht Easier to ask for forgiveness than permissionJoghurt 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...
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
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
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