ich habe eine GUI gebastelt, mit der ich mich dann an einen MySQL-Server anmelde. Der Benutzer muss die benötigten Daten eingeben, und am Ende wird die Schaltfläche betätigt, die dann eine Funktion auslöst. Diese sieht dann wie folgt aus:
Code: Alles auswählen
def log_in(self):
server_host = str(self.ui_login.lineEdit_sevrer_host.text())
username = str(self.ui_login.lineEdit_username.text())
password = str(self.ui_login.lineEdit_password.text())
database_name = str(self.ui_login.lineEdit_database_name.text())
port = str(self.ui_login.lineEdit_port.text())
mysql_connection_result = os.system(manage_mysql.connect_to_mysql(server_host, username, password, database_name, port))
if not mysql_connection_result == "True":
self.critical(mysql_connection_result)
else:
self.ui_login.close()
# When the connection fails then call this function and show the messagebox
def critical(self, text_error):
ret = QMessageBox.critical(self, "Critical",
# Show the error message (text_error)
text_error, QMessageBox.Ok)
if ret == QMessageBox.Ok:
pass
Code: Alles auswählen
def connect_to_mysql(db_host, db_user, db_passwd, db_name, db_port):
print "STATUS [OK] (", FILE_NAME, "): Try to Connecting to MYSQL-Database"
try:
engine = create_engine('mysql://'+db_user+':'+db_passwd+'@'+db_host+':'+db_port+'/'+db_name,
encoding='latin1', echo=False)
connection = engine.connect()
connection.execute('USE '+ db_name)
print "STATUS [OK] (", FILE_NAME, "): Successfully connected to the database."
connection.close()
print "STATUS [OK] (", FILE_NAME, "): Successfully closed to the database."
return True
except exc.OperationalError as OptErr:
print "STATUS [FAILED] (", FILE_NAME, "): ", OptErr
return OptErr[0]
Unter Python-Interpreter funktioniert alles so wie ich es mir vorgestellt habe. Ist die Eingabe korrekt, dann wird True zurückgegeben, und das Fenster wird geschlossen. Wenn ich einen Fehler provoziere, indem ich falsche Anmelde-Daten eingebe, bekomme ich meine Messagebox.

Nun wollte ich testen, ob dieses Verhalten auch in einer EXE-Datei beibehalten wird, und habe mittels py2exe die EXE-Datei erzeugt, und das gleiche durchgeführt, und da bekam ich eine Fehlermeldung, mit der ich wenig anfangen kann.

Wie gesagt, im Python-Interpreter bekomme ich keinerlei Fehlermeldung, nur wenn ich eine EXE-Datei kreiere, und dann versuche mich beim MySQL-Server anzumelden. Diese Fehlermeldung kommt immer. Das heißt, es ist egal ob die Daten korrekt oder falsch sind.