Nach Import folgt Export?
Verfasst: Samstag 4. April 2015, 23:24
Hallo Leute,
im Laufe der Modularisierung kommen hin und wieder ein paar Bibliotheken hinzu, die nicht zum Standard hinzugehören. Von der Strukturierung her habe ich ein Index-Modul, von wo aus meine Anwendung gestartet werden soll. Meine Idee ist also, dass ich bereits in meinem "index"-Modul schon mal vorab abfragen möchte, ob bestimmte Bedingungen erfüllt sind. Und da kam mir die Idee, erst einmal alles zu importieren, und am Ende wieder zu "exportieren". Ich wollte mir den Weg sparen, und in jedem Modul eine solche Abfrage zu erstellen. Ich weiß, dass man da mit einer Try-Execpt-Behandlung arbeiten kann. Damit ihr versteht was ich meine, hier der Quelltext meines Index-Modules:
Wir sehen also, dass ich zu allererst die Versionen abfrage, und im Anschluss in Zeile 31 alle PyQt4 Klassen lade. Natürlich wollte ich weiter gehen, und all die Bibliotheken importieren, die meine Anwendung im Laufe der Zeit braucht, zum Beispiel MysSQLlib oder SQLAlchemy etc. Jedoch brauche ich die Klassen im Index-Modul nicht, ich wollte nur testen, ob die Klassen importiert werden kann. Wenn nicht, soll eine Meldung ausgeworfen werden. Und da kam mir die Frage auf, ob ich all das, was ich zuvor importiert habe, auch wieder "los werden" kann?
im Laufe der Modularisierung kommen hin und wieder ein paar Bibliotheken hinzu, die nicht zum Standard hinzugehören. Von der Strukturierung her habe ich ein Index-Modul, von wo aus meine Anwendung gestartet werden soll. Meine Idee ist also, dass ich bereits in meinem "index"-Modul schon mal vorab abfragen möchte, ob bestimmte Bedingungen erfüllt sind. Und da kam mir die Idee, erst einmal alles zu importieren, und am Ende wieder zu "exportieren". Ich wollte mir den Weg sparen, und in jedem Modul eine solche Abfrage zu erstellen. Ich weiß, dass man da mit einer Try-Execpt-Behandlung arbeiten kann. Damit ihr versteht was ich meine, hier der Quelltext meines Index-Modules:
Code: Alles auswählen
#!/usr/bin/env python
#-*- coding:utf-8 -*-
import sys
failed = 0
if sys.version_info < (2,7):
failed = 1
sys.stderr.write("""
###########################################################
## Xarphus needs Python version 2.7 or higher. ##
## ##
## Please consider an upgrade. ##
###########################################################
""")
if sys.version_info >= (3,):
failed = 1
sys.stderr.write("""
###########################################################
## Xarphus does not yet run on Python 3. ##
## ##
## Please consider a downgrade. ##
###########################################################
""")
FILE_NAME = "xarphus.py"
def main():
try:
from PyQt4 import *
print FILE_NAME + ": all modules are imported"
start_main()
except ImportError, e:
print e
failed = 1
sys.stderr.write("""
###########################################################
## ImportError: Unable to import module: PyQt4 ##
## ##
## PyQt4 is needed for the Graphical User Interface, and ##
## must be installed in order to successfully run ##
## Xarphus ##
## PyQt4 can be obtained from: ##
## ##
## http://www.riverbankcomputing.com/software/pyqt/intro ##
###########################################################
""")
except IOError as (errno, strerror):
print FILE_NAME + ": I/O error({0}): {1}".format(errno, strerror)
except:
print FILE_NAME + ": Unexpected error:", sys.exc_info()[0]
raise
if failed:
print "Exiting ..."
sys.exit(1)
del failed
if __name__ == "__main__":
main()