Modul in Funktion importieren, aber für gesamte Klasse verfügbar machen?
Hallo,
ich schreibe gerade ein kleines Python-Programm, das diverse Pakete importiert. Diese müssen zuvor auf dem OS installiert sein. Manche Pakete können direkt mit "apt-get" installiert werden, manche müssen heruntergeladen, kompiliert und installiert werden.
Damit man nicht jedes mal wieder die Befehle dafür herauskramen muss will ich das in das Programm selbst einbinden. Es prüft zu beginn, ob alle benötigten Pakete installiert sind, und falls nicht wird gefragt ob die fehlenden installiert werden sollen.
Der Code sieht im Moment so aus:
Das Problem ist nur, dass der hier verwendete Import nur für die Funktion __CheckPaket__ gültig ist. Wie erreiche ich es, dass das Paket anschließend in der gesamten Klasse verwendet werden kann?
Danke!
Gruss
mabue
ich schreibe gerade ein kleines Python-Programm, das diverse Pakete importiert. Diese müssen zuvor auf dem OS installiert sein. Manche Pakete können direkt mit "apt-get" installiert werden, manche müssen heruntergeladen, kompiliert und installiert werden.
Damit man nicht jedes mal wieder die Befehle dafür herauskramen muss will ich das in das Programm selbst einbinden. Es prüft zu beginn, ob alle benötigten Pakete installiert sind, und falls nicht wird gefragt ob die fehlenden installiert werden sollen.
Der Code sieht im Moment so aus:
class Test():
def __init__(self):
if self.__CheckPaket__() == False: return;
def __CheckPaket__(self):
try:
import [Paket];
except:
print "Das Paket ist nicht verfuegbar.";
print "Soll es installiert werden? (j/n)";
if raw_input().lower() == "j":
[Installation des Pakets]
import [Paket];
return True;
else:
return False;
Das Problem ist nur, dass der hier verwendete Import nur für die Funktion __CheckPaket__ gültig ist. Wie erreiche ich es, dass das Paket anschließend in der gesamten Klasse verwendet werden kann?
Danke!
Gruss
mabue
Please also mark the comments that contributed to the solution of the article
Content-Key: 223390
Url: https://administrator.de/contentid/223390
Printed on: April 19, 2024 at 07:04 o'clock
2 Comments
Latest comment