Fehlermeldungen bei py2exe

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.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Warum importierst du so viele GUI-Toolkits? Du importierst wxPython sogar zweimal! Vielleicht solltest du das erstmal korrigieren?
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Gast

Danke für den Hinweis!

hab es nicht gesehen. Habe es inzwischen korrigiert.
Es funktioniert leider aber immer noch nicht.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Anonymous hat geschrieben:Habe es inzwischen korrigiert.
Inwiefern? Keine * Imports mehr genutzt?
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Benutzeravatar
Toni83
User
Beiträge: 125
Registriert: Donnerstag 28. Juli 2005, 10:53

Habe

from wxPython.wx import *

herausgenommen.

Gruss,
Toni
querdenker
User
Beiträge: 424
Registriert: Montag 28. Juli 2003, 16:19
Wohnort: /dev/reality

Schau dir mal diesen oder diesen Thread an. Da wird einiges über imports innerhalb der setup.py oder der Setup.cfg erklärt.

Desweiteren: Warum importierst du teile aus dem TK-Bereich, wenn du wx benutzen willlst?

Und du meinst die Frage
Toni83 hat geschrieben:Was bedeutet eigentlich bei meiner ersten Fehlermeldung: "an integer is required"?
eigentlich ernst?

mfg, querdenker
Benutzeravatar
Toni83
User
Beiträge: 125
Registriert: Donnerstag 28. Juli 2005, 10:53

Hallo,

Habe jetzt schon einmal mit einer anderen Version von py2exe versucht,
die *.exe zu erstellen, hat aber auch nicht geklappt, versuche es heute noch mit älteren Versionen.
Ich importiere Teile aus dem Tk-Bereich deshalb, da ich das für ein zweites
temporär behaftetes Fenster benötige.
Übrigens: Die Frage was "an integer is required" bedeutet, meine ich ernst.
Nicht in dem Kontext was es übersetzt bedeutet, so blöde bin ich
dann auch wieder nicht, sondern was py2exe meint.
Was für einen Integer will py2exe haben?

Gruss,
Toni
Benutzeravatar
Toni83
User
Beiträge: 125
Registriert: Donnerstag 28. Juli 2005, 10:53

Servus,

habe inzwischen alle möglichen Versionen von py2exe runter bis 0.5.0 durchgespielt. Hat alles nicht funktioniert.
Für noch ältere Versionen habe ich die unpassende setup.py. Kann mir die jemand zukommen lassen?
Werde an meinen Problemen inzwischen weiter knobeln.

Gruss,
Toni
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Ich vermute mal dass dein Script irgendwie irgendwo hinüber ist. Wie groß ist das Script? Kannst du das nicht irgendwo reinstellen?
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Gast

Hallo,

wird schwierig sein den jetzt mittlerweile auf 8000 Zeilen gewachsenen Code ins Internet zu stellen.
Habe gar nicht berücksichtigt, dass ich mehrere nicht ASCII-Zeichen im Text vorhanden habe (ä,ü,ö,...). (Gibt nur ein Warning wenn mit Python, also nicht die .exe, gestartet wurde, dass ich nicht ASCII-Zeichen verwende)
Kann es vielleicht daran liegen? Wird schwierig sein die alle zu entfernen, deswegen frage ich noch mal nach. Habe leider nichts weiter bedacht als ich mit dem Boa Constructor die Grafische Oberfläche erstellt habe.
Ich kann es mir kaum vorstellen das ich einen anderen Fehler habe. Wenn ich mein Programm über Python laufen lasse, funktioniert es ja. Nur die .exe wiederum nicht.


Gruss,
Toni[/b]
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Kannst mal versuchen als zweite Zeile unter die Shebang

Code: Alles auswählen

# -*- encoding: latin-1 -*-
zu schreiben.

Und für so große Quellcodes lassen sich auch rafb und phpfi benutzen, außer du möchtest den Quellcode aus irgendwelchen Gründen geheim halten.

Sag blos, die 8000 Zeilen sind in einer Datei?

Mir fällt jetzt auch keine Möglichkeit ein, an was py2exe scheitert.

Ich glaub ich habe mal eine py2exe 0.4 setup.py rausgefischt:

Code: Alles auswählen

from distutils.core import setup 
import py2exe 
setup(name="wxTail",scripts=["wxTail.py"],)
Jedoch bezweifle ich, dass du mit älteren Versionen zum Erfolg kommst.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Gast

Servus,

Habe leider das Problem das die von mir geschriebene Software Firmeneigentum ist und ich den Quellcode leider nicht veröffentlichen darf.
Ich weiss, das unter diesen Umständen es schwierig wird mir zur helfen.
Was ich allerdings noch sagen kann und was mir gerade eingefallen ist, ist dass ich vorher eine grafische Oberfläche mit Tkinter erstellt hatte. Da ist das Problem noch nicht aufgetaucht. Erst ab dem Zeitpunkt als ich die Oberfläche mit wxGlade das erste Mal erstellt hatte, kam der Fehler den ich ganz am Anfang erwähnt hatte ("an integer is required").
Hat py2exe vielleicht Probleme mit dem Code das wxGlade erstellt hat?
Habe nebenbei es schon mit älteren Versionen versucht und es hat leider auch nicht geklappt.

Gruss,
Toni
BlackJack

Kann es sein, das in irgendeinem Dateinamen, der geöffnet werden soll, ein '\U' vorkommt? Beziehungsweise das Du überhaupt irgendwo Dateinamen mit "Windowsnamen", also mit '\' als Pfadtrenner benutzt, die nicht richtig "escaped" sind?
Gast

Sorry für die späte Antwort,

In der zu erstellenden .exe Datei ist im Namen keinerlei "\" enthalten.
Ich brauche aber "\" zum Aufrufen gewisser Dateien innerhalb des Programms.
Habe aber immer "\\" geschrieben damit Python eindeutig weiss, das dies keine Escape-Funktion ist, sondern zur Pfadangabe einer Datei gehört.

Gruss,
Toni
Benutzeravatar
Toni83
User
Beiträge: 125
Registriert: Donnerstag 28. Juli 2005, 10:53

Kurz noch ne Frage nebenbei,

wieso bin ich wenn ich mich am Anfang anmelde und dann eine Antwort schreibe wieder ausgeloggt?
querdenker
User
Beiträge: 424
Registriert: Montag 28. Juli 2003, 16:19
Wohnort: /dev/reality

Vergleich doch bitte mal die verwendeten Dateien in deinem Source-Verzeichnis mit denen im build-Ordner, den py2exe anlegt.

Im Build findest du eigentlich immer alles, was py2exe anfasst.
Interessant ist auch die Ausgabe vom py2exe-lauf.

Ach, kleiner Hinweis noch: Lösche vor einem py2exe-lauf die beiden Ordner .\dist und .\build

mfg, querdenker
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Toni83 hat geschrieben:wieso bin ich wenn ich mich am Anfang anmelde und dann eine Antwort schreibe wieder ausgeloggt?
Du musst immer auf www.python-forum.de gehen, sonst gibt es probleme, wenn du z.B. das WWW weglässt.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Gast

Servus querdenker,

Habe jetzt das ganze verglichen und Python bindet alles ein was das Programm zum laufen benötigt.
Was sollte der Vergleich eigentlich sonst noch bringen? Was wäre wenn etwas fehlen würde? Müsste ich es dann die z.B fehlenden Bibliotheken selber einbinden?

Gruss,
Toni
Benutzeravatar
Toni83
User
Beiträge: 125
Registriert: Donnerstag 28. Juli 2005, 10:53

Mist,
habe es vorhin schon wieder falsch gemacht.
Danke Leonidas für den Tip!
querdenker
User
Beiträge: 424
Registriert: Montag 28. Juli 2003, 16:19
Wohnort: /dev/reality

Hi Toni83!
Toni83 hat geschrieben:Servus querdenker,

Habe jetzt das ganze verglichen und Python bindet alles ein was das Programm zum laufen benötigt.
Was sollte der Vergleich eigentlich sonst noch bringen? Was wäre wenn etwas fehlen würde? Müsste ich es dann die z.B fehlenden Bibliotheken selber einbinden?
Moment, py2exe bindet alles ein meinst du, oder?
Ich habe die Erfahrung gemacht, das py2exe die Abhängigkeiten nicht immer sauber auflösen kann, gerade wenn es um Datenbanken, wx* oder de/encoding geht, hakt es ab und zu.

Deshalb hatte ich vorgeschlagen mal einen Abgleich zu machen.
Je nachdem welchen Weg du gehst, solltest du die mit zu übernehmenden packages (gerade eigene, die nicht unbedingt im PYTHONPATH stehen) entweder in der setup.py oder in der setup.cfg mit angeben.

mfg, querdenker
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Naja, py2exe bindet nicht immer alles (korrekt) ein, aber es reicht meist paar Einstellungen in der setup.py zu ändern dann geht das schon.

Aber bevor du verzweifeltst Toni83: versuch doch mal cx_Freeze. Ist zwar etwas kompluizierter zu bedienen, funktioniert aber auch unter Linux. Dann kannst du auch feststellen wo der Fehler liegt: an py2exe oder deinem Programm.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Antworten