Mit cx_freeze compliert aber funktionen fehlen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Creative
User
Beiträge: 22
Registriert: Sonntag 11. Juni 2006, 01:35

Montag 12. Juni 2006, 13:19

Moin,
ich hab mein kleines "programm" jetzt mal als exe compliert weil nen kumpel von mir (hat kein python installt usw.^^) teste will *g*

Code: Alles auswählen

import  MySQLdb 
import os



#menu
print "1.Clanname anderen"
print "2.Seitentitle anderen"
print "3.Beenden"


#auswahl
#Clanname anderen
auswahl = raw_input("Deine Auswahl: ")
if (auswahl == "1"):    
    #mysql connection
    conn = MySQLdb.connect(
                        host    ="localhost", 
                        db      ="dzcp_13", 
                        user    ="root", 
                        passwd  ="") 
  #  c = conn.cursor(MySQLdb.cursors.DictCursor) 
  #  query2 = "SELECT clanname FROM dzcp_settings"
  #  result = c.execute(query2)
  #  print "Der Aktuelle Clanname: %s" %result
    config = raw_input("Neuen Clanname eingeben: ") 

   
    query = "UPDATE dzcp_settings SET clanname = '%s'"%config  
    c.execute(query)

    print "Dein neuer Clanname " +config
    os.system("pause")
#seitentile anderen
elif (auswahl == "2"): 
    config = raw_input("Neuen Seitentitle eingeben: ") 
    #mysql connection
    conn = MySQLdb.connect(
                        host    ="localhost", 
                        db      ="dzcp_13", 
                        user    ="root", 
                        passwd  ="") 

    c = conn.cursor(MySQLdb.cursors.DictCursor) 

    query = "UPDATE dzcp_settings SET pagetitel = '%s'"%config  
    c.execute(query)
    os.system("pause")

    print "Dein neuer Seitentitel " +config 
elif(auswahl == "3"):
    os.system("exit")

os.system("pause")
das auskometiert kommt später irgendwann rein einfach ignorieren

jetzt geht auch alles bis auf die tatsache das er mir nicht in die mysql db schriebt (was aber wenn ich das prog unter python starte geht) und er schließt das fenster immer nachdem ich ne eingabe (die aber nicht eingetragen wird) gemacht habe (erst ab der if abfrage) also das print wird gar nicht ausgegeben das passiert auch nur in der exe in der python nicht :(
Zusammengefasst:
Die MySQL abfrage/eintragung geht nicht mehr
Er schliesst das prog immer nachdem ich eine eingabe innerhalb der if abfrage gemacht habe
die beiden fehler passieren nur in der exe in der .py geht alles
Benutzeravatar
DatenMetzgerX
User
Beiträge: 398
Registriert: Freitag 28. April 2006, 06:28
Wohnort: Zürich Seebach (CH)

Montag 12. Juni 2006, 13:51

Wenn du nur an exe files interessiert bist, nehme py2Exe
Creative
User
Beiträge: 22
Registriert: Sonntag 11. Juni 2006, 01:35

Montag 12. Juni 2006, 14:07

hab ich schon probiert aber irgendwie bin ich zublöd für die eingabe^^also python setup.py py2exe
kp wo rein damit habs in python probiert(der shell) unter ausführen-->cmd(das fenster da :D ) funkt irgendwie net hab auch schon das forum dursucht hat mir aber alle irgendwie net geholfen :(
hast vllt nen idoten sichere tut?
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

Montag 12. Juni 2006, 14:40

Creative hat geschrieben:er schließt das fenster immer nachdem ich ne eingabe (die aber nicht eingetragen wird) gemacht habe
Hi Creative!

Starte die EXE in der DOS-Eingabeaufforderung. Normalerweise solltest du dort auch ein Traceback bekommen, das dir anzeigt was schief läuft.

1. Start --> Ausführen --> cmd
2. Mit CD in den Ordner wechseln, in dem die EXE liegt.
3. EXE starten und ausprobieren. Nach dem Abbruch, sollte in der DOS-Konsole der Traceback stehen.

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Creative
User
Beiträge: 22
Registriert: Sonntag 11. Juni 2006, 01:35

Montag 12. Juni 2006, 14:51

also wie die eingabeaufforderung funkt weiss ich *g* trotzdem
thx
traceback?fehler meldung oder wie :S ich bin noch net lange in der desktop programmierung um genau zu sein 2tage :) hab vorher halt nur php geprogt und html (naja das kann man net proggen nen lol :D )
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

Montag 12. Juni 2006, 15:08

Creative hat geschrieben:traceback?fehler meldung oder wie
Hi Creative!

Ja, damit ist die Fehlermeldung gemeint.
Wenn du z.B. im IDLE 0/0 eingibst, dann bekommst du ein Traceback, das dir aufzeigt, was für ein Fehler aufgetreten ist und in welcher Zeile.

Code: Alles auswählen

>>> 0/0

Traceback (most recent call last):
  File "<pyshell#0>", line 1, in -toplevel-
    0/0
ZeroDivisionError: integer division or modulo by zero
>>> 
Genau so ein Traceback solltest du auch in der Dos-Konsole bekommen, wenn du dein Programm über die Konsole, und nicht mit einem Doppelklick per Maus, startest.
Für uns ist immer das komplette Traceback wichtig.

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

Montag 12. Juni 2006, 15:11

Kommt kein Traceback, dann ist es evt. ein logischer Fehler, der keinen Fehler auslöst. Solche Fehler bekommst du in den Griff, wenn du mit "print" an mehreren Stellen deines Codes etwas an die Konsole schreibst, damit du weißt was soeben bearbeitet wurde und wo er stehen bleibt.

Du testest dein Programm ja auf deinem Computer... ansonsten hätte ich darauf getippt, dass auf dem Computer deines Freundes einfach kein MySQL installiert ist.

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Creative
User
Beiträge: 22
Registriert: Sonntag 11. Juni 2006, 01:35

Montag 12. Juni 2006, 15:19

ne ich teste das ja auf meinem rechner der soll ja keine programm kriegen was nacher net läuft °v° un ja ich hab mysql installiert bzw. den webserver laufen (wenn der net läuft bombt der mich mit fehlern zu^^)
unter python geht auch alles nur in der exe spinnt er rum

Code: Alles auswählen

File d:\python\cx_frezze\intscripts\console.py" line 26 in ? exec code in m._dict_
FILE "main.py" line 50 in ?
FILE python gedöns+mysqldblib\cursosrs.py line 146 in execute query = query.encode{charset}
lookup error no codec search functions refistred can´t find encoding
aktueller code

Code: Alles auswählen

import  MySQLdb 
import os



#menu
print "1.Clanname anderen"
print "2.Seitentitle anderen"
print "3.Beenden"


#auswahl
#Clanname anderen
auswahl = raw_input("Deine Auswahl: ")
if (auswahl == "1"):    
    #mysql connection
    conn = MySQLdb.connect(
                        host    ="localhost", 
                        db      ="dzcp_13", 
                        user    ="root", 
                        passwd  ="") 
    c = conn.cursor(MySQLdb.cursors.DictCursor) 
  #  query2 = "SELECT clanname FROM dzcp_settings"
  #  result = c.execute(query2)
  #  print "Der Aktuelle Clanname: %s" %result
    config = raw_input("Neuen Clanname eingeben: ") 

   
    query = "UPDATE dzcp_settings SET clanname = '%s'"%config  
    c.execute(query)

    print "Dein neuer Clanname " +config
    os.system("pause")
#seitentile anderen
elif (auswahl == "2"): 
    config = raw_input("Neuen Seitentitle eingeben: ") 
    #mysql connection
    conn = MySQLdb.connect(
                        host    ="localhost", 
                        db      ="dzcp_13", 
                        user    ="root", 
                        passwd  ="") 

    c = conn.cursor(MySQLdb.cursors.DictCursor) 

    query = "UPDATE dzcp_settings SET pagetitel = '%s'"%config  
    c.execute(query)
    os.system("pause")

    print "Dein neuer Seitentitel " +config 
elif(auswahl == "3"):
    os.system("exit")

os.system("pause")
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

Montag 12. Juni 2006, 16:00

Creative hat geschrieben:

Code: Alles auswählen

File d:\python\cx_frezze\intscripts\console.py" line 26 in ? exec code in m._dict_
FILE "main.py" line 50 in ?
FILE python gedöns+mysqldblib\cursosrs.py line 146 in execute query = query.encode{charset}
lookup error no codec search functions refistred can´t find encoding
Hi Creative!

Probier mal folgendes:

1. Ganz an den Anfang des Programms (1. und 2. Zeile):

Code: Alles auswählen

#!/usr/bin/env python
# -*- coding: iso-8859-1 -*-
2. Achte mal darauf, dass der Ordner der den Code enthält, also der Pfadname keine Umlaute und keine Leerzeichen enthält.

Vielleicht hilft es...

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

Montag 12. Juni 2006, 16:02

Woher kommt dieses gedöns? Ist das ein Teil des Pfades oder ist irgendetwas anderes in einem Ordner, der so heißt?

Wie auch immer. Dieses gedöns muss weg. :?

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Creative
User
Beiträge: 22
Registriert: Sonntag 11. Juni 2006, 01:35

Mittwoch 14. Juni 2006, 20:14

so bin auch wieder da (hatte abschluss :D ) also
das "gedöns" is der pfad zu dem ordner mysqldblib sprich d:\python\mysqldblib

ich werde das mit dem iso gleich ma proben
Antworten