
@Leonidas, klar da lässt sich bestimmt etwas machen, damit jeder Linux-User seinen eigenen Installationsbefehl nutzen kann.
Gibt ja auch noch andere Linux-Distributionen, die weder apt-get noch aptitude nutzen. Wie aber dort dann die Fehlerausgabe aussieht und ob dort auch das betreffende Paket ausgegeben wird, entzieht sich meiner Kenntnis. Das müßte man dann bei den betreffenden Systemen testen.
@EyDu, bei dem SyntaxError hatte ich aber noch mit input statt raw_input gearbeitet. Da kam bei der ja/nein-Abfrage mit ENTER der SyntaxError. Du hast Recht, an dieser Stelle brauche ich try/except nicht mehr, Danke!
Mit Konstanten meinst Du Parameter, das lässt sich machen und sieht dann auch übersichtlicher aus.
Statt (e, inp) ist wohl (e, answer) besser.
Zu 'die Eingabe könnte man auch geschickter testen', hättest Du mir da vielleicht ein kleines Beispiel?
Zu 'Groß- und Kleinschreibung könnte man noch filtern.', hättest Du mir da vielleicht ein kleines Beispiel?
Das habe ich mir auch schon gedacht, interessant wäre auch von einem Pfad die Module einlesen und überprüfen zu können, bin da aber noch zu keiner Lösung gekommen.EyDu hat geschrieben:Und das ganze Ding ist natürlich ein wenig sinnfrei, wenn man den Code ändern muss um ein bestimmtest Modul zu testen
Vielleicht hast Du mir da Tipps?
Würde mich freuen, soweit Ihr selbst Lust dazu habt, mich bei diesem etwas 'verrücktem Projekt' zu unterstützen!

Grüße Wolfgang
Aktuell habe ich es so verändert:
Code: Alles auswählen
#!/usr/bin/python
# -*- coding: utf-8 -*-
import sys, subprocess
DATEI = 'gui_start.py'
MODUL = DATEI.split('.')[0]
IMPORT_INFO = '''Das Paket %s wird für das Starten
des Python-Modul %s benötigt.
Das Paket %s ist nicht installiert ist!
Soll das Paket %s jetzt installiert werden?'''
ANSWER_NO = '''
Installation von %s wurde abgebrochen!'''
ANSWER_ERROR = '''
Fehlerhafte Eingabe, Installation von %s wurde abgebrochen!'''
try:
import gui_start
print 'Alles ok!'
sys.exit(1)
except ImportError, e:
if 'please install the' in str(e):
paket = e.message.rsplit(None, 2)[1]
if paket:
print IMPORT_INFO % (paket, DATEI, paket, paket)
answer = raw_input('< ja / nein >: ')
if answer == 'ja':
print 'Geben Sie Ihr Passwort ein!'
subprocess.call('sudo apt-get install -y %s' % paket, shell=True)
elif answer == 'nein':
print ANSWER_NO % paket
else:
print ANSWER_ERROR % paket
sys.exit(1)
except BaseException, e:
print e