Prob mit py2ex ->ImportError: No module named zipextimpor

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
sape
User
Beiträge: 1157
Registriert: Sonntag 3. September 2006, 12:52

Hi @all :)


Bin gerade seit ein par Minuten neu im forum und habe schon ein mittelschweres problem ^^. Bis her hatte ich für fast jedes Problem selber die Lösung gefunden aber nun bin ich mit meinen Latein *hust* ehm, Python am ende ^^

BTW: Hab WinXP SP2 und Python richtig installiert und auch in der Umgebungvariable den Pfad zum Python Verzeichnis + Lib angegeben.


Und zwar geht es um diese Fehlermeldung:
Traceback (most recent call last):
File "<install zipextimporter>", line 1, in <module>
ImportError: No module named zipextimporter
Traceback (most recent call last):
File "pyapp1.py", line 4, in <module>
ImportError: No module named wx
Kein sorgen, ich war nicht untätig und habe etliche stunden gesucht um den Fehler zu finden. Schließlich habe ich den Fehler auch gefunden :)

Und zwar liegt der Fehler bei 'compressed' : 1

Code: Alles auswählen

from distutils.core import setup
import py2exe

setup(
    name = 'Your Application Name',
    description = 'I am not experiment joyful',
    version = '1.0.0',
    options = { 'py2exe' : { 'bundle_files' : 1,
                             'optimize' : 2,
                             'compressed' : 1,
                             },
               },
    zipfile = None,
    windows = [ { 'script': 'pyapp1.py', # WICHTIG: tausch's gegen deinen Scriptnamen aus ;)
                  'company_name' : 'NotExperimentJoyful',
                  'copyright' : 'NotExperimentJoyful',
                }
               ],
    )

So bald ich den befehl für die Compression rausnehme ist alles wunderbar und das Programm läuft, aber wenn ich 'compressed' : 1 dort reinsetze kommt die fehlermeldung da oben. :( Taja, woran liegt das und was kann man dagegen tun? Eigentlich müsste er das benötigte Modul importieren können weil das ZIP-Modul ja im Lib Verzeichnis vom Python ist :K

Vielen dank schon mal für eure Hilfe

lg

edit:
Habe:
-- Python 2.5c1
-- py2exe 0.6.5.
-- wxPython 2.6.3.3 (win32 unicode)
-- Boa Constructor 0.4.4
Zuletzt geändert von sape am Montag 4. September 2006, 20:36, insgesamt 1-mal geändert.
sape
User
Beiträge: 1157
Registriert: Sonntag 3. September 2006, 12:52

Hi :)

Was ich noch vergessen hab einzutragen.
Ich habe:
-- Python 2.5c1
-- py2exe 0.6.5.
-- wxPython 2.6.3.3 (win32 unicode)
-- Boa Constructor 0.4.4

Wäre mir echt wichtig wenn mir da einer helfen könnte. Ohne Kompression sind die Dateien einfach zu groß :)

Wie gesagt wenn ich die Kompression rausnehme (also den 'compressed' : 1 nicht rein schreibe) geht alles und das Kompilierte Programm wird dan gestarte ohne Probleme :) Sobald ich aber die Kompression mit rein mache, kriege ich die Fehlermeldung…
Traceback (most recent call last):
File "<install zipextimporter>", line 1, in <module>
ImportError: No module named zipextimporter
:cry:

Für mich persönlich brauche ich kein Kompilierten Programm, ist mir auch echt egal ob Kompiliert ist oder nicht ;) Aber da ich ein Programm für ne Community machen will, will ich das so benutzerfreundlich wie möglich gestallten und da kann man nicht von den Usern erwarten, das die erstmal Python und wxPython installieren und dann noch die entsprechenden Pfade in der Umgebungsvariable setzen.

Ich hoffe ihr könnt das nach vollziehen :)

lg
Benutzeravatar
DatenMetzgerX
User
Beiträge: 398
Registriert: Freitag 28. April 2006, 06:28
Wohnort: Zürich Seebach (CH)

nim pyinstaller oder cx_freeze... Kannst die gleiche konfiguration für linux und windows benutzen. Und wenn dir die Files zu gross sind, kannst du mit upx komprimieren...
sape
User
Beiträge: 1157
Registriert: Sonntag 3. September 2006, 12:52

DatenMetzgerX hat geschrieben:nim pyinstaller oder cx_freeze... Kannst die gleiche konfiguration für linux und windows benutzen. Und wenn dir die Files zu gross sind, kannst du mit upx komprimieren...
:?
sape
User
Beiträge: 1157
Registriert: Sonntag 3. September 2006, 12:52

Vielen danke läute für den Netten empfang in eure Community!!
Nirven
User
Beiträge: 130
Registriert: Mittwoch 10. Mai 2006, 08:18
Wohnort: Bremerhaven

XtraNine hat geschrieben:Vielen danke läute für den Netten empfang in eure Community!!
Betrachte es als Ausdruck unserer Hilflosigkeit, bei mir ist es auch immer wiedder ein Kampf (und eher Zufallsbedingt), wenn ich etwas mit py2exe in eine Exe packen will... das du nun als einzigen Kommentar den Hinweis auf cx_freeze bekommst... naja.

Aber davon abgesehen: Funktioniert es denn, wenn du dir alles in ein Zipfile packen läßt? Das dürfte dann doch auch deutlich kleiner ausfallen.
sape
User
Beiträge: 1157
Registriert: Sonntag 3. September 2006, 12:52

Hey dank für deine Schelle Antwort :) Sorry @all für den Satz, der war echt daneben. Ich hab mich bloß echt gefragt ob ich hier der einzige im Forum bin :?

Erstmal vielen dank für den Tipp (Ich hatte das schon mal getestet gehabt und da viel mir etwas wichtige nicht auf. Dazu gleich mehr):Wenn ich mir alles in ein ZipFile packen lasse ohne Kompression funktioniert es. Ich kann dann sogar das ZipFile öffnen. Bloß sobald ich dann die Kompression setze geht das Programm nicht, ich kann dann auch nicht das ZipFile öffnen und es kommt auch die gleiche Fehlermeldung!

Ich glaube ich hab das Problem auch nun gefunden:
Als ich das damals getestet habe nur alle ins ZiFile zu packen, hatte ich natürlich nicht ausprobiert ob man die ZipFiles öffnen kann.

Folgende Fehlermeldung bekomme ich wenn ich die Kompression einschalte:
Das Archiv besitzt ein unbekanntes Format oder ist beschädigt
Tja langsam wird mir Klar das es gar nicht daran liegt das der zipextimporter nicht gefunden wird, sondern das dass ZipFille beschädigt ist und nicht geöffnet werden kann :? Warum bloß? Ich werde mal gleich ein Simples Programm mit print Anweisungen Kompilieren und kucken ob es wirklich daran liegt…

EDIT:

Hmmm ok. Bei nen Normalen Programm tut sich da auch nichts. Scheint wohl wirklich zu sein das er die ganzen Module nicht laden kann aufgrund des beschädigten Archives.

Hab hier mal ne Ausgabe der Konsole beim Kompelieren:
Traceback (most recent call last):
File "setup.py", line 16, in <module>
'copyright' : 'NotExperimentJoyful',
File "c:\python\lib\distutils\core.py", line 151, in setup
dist.run_commands()
File "c:\python\lib\distutils\dist.py", line 974, in run_commands
self.run_command(cmd)
File "c:\python\lib\distutils\dist.py", line 994, in run_command
cmd_obj.run()
File "c:\python\lib\site-packages\py2exe\build_exe.py", line 218, in run
self._run()
File "c:\python\lib\site-packages\py2exe\build_exe.py", line 285, in _run
self.create_binaries(py_files, extensions, dlls)
File "c:\python\lib\site-packages\py2exe\build_exe.py", line 543, in create_bi
naries
arcname, target.script)
File "c:\python\lib\site-packages\py2exe\build_exe.py", line 794, in build_exe
cutable
zlib_bytes = imp.find_module("zlib")[0].read()
AttributeError: 'NoneType' object has no attribute 'read'
Besonders der Fehler "AttributeError: 'NoneType' object has no attribute 'read'" beunruhigt mich…Bin mit meinen Latain am ende :?
sape
User
Beiträge: 1157
Registriert: Sonntag 3. September 2006, 12:52

Hi :)

Ich konnte das problem weiter eingrenzen und habe nun herausgefunden das sich die Option 'bundle_files' : 1 nicht mit der Option 'compressed' : 1 verträgt. Das heißt sobald ich bundle_files nicht mit rein schreibe funktioniert die Kompression und das Programm Startet. Aber wenn compressed und bundle_files zusammen aktiviert sind ergibt das den Fehler :?
Gut zumindest konnte ich nun raus finden woran der Fehler liegt und das die Kompression auch nicht besonders Effizient zu sein scheint. Aus ca. 12MB werden ca. 10MB was nicht besonders berauschend ist.

@DatenMetzgerX: Danke dir für deinen Tipp mit upx. Hab das getestet und bin nicht sonderlich überzeugt. Hab in der Höchsten stufe komprimiert (mit der –brute Option. Was übrigens ein wenig gedauert hat weil ca. 30 Runs gemacht werden) und da war die Datei danach gerade mal 2MB kleiner. Ich danke dir trotzdem für den Tipp.

Ich werde mir wohl mal cx_freeze anschauen müssen, obwohl es um wellten Komplizierter ist.

Falls einer Ideen hat was man gegen den Fehler unternehmen könnte dann wäre ich sehr erfreut. Ich werde weiter im Web suchen nach einer Lösung suchen. Wenn ich eine Lösung des Problems gefunden habe werde ich euch davon berichten :)

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

XtraNine hat geschrieben:Falls einer Ideen hat was man gegen den Fehler unternehmen könnte dann wäre ich sehr erfreut. Ich werde weiter im Web suchen nach einer Lösung suchen. Wenn ich eine Lösung des Problems gefunden habe werde ich euch davon berichten :)
Hast du schon den Maintainer kontaktiert oder in die Mailingliste geschrieben (vielleicht ersteinmal letzteres versuchen). Es kann sein dass es einfach ein py2exe-Bug ist und dadurch dann korrigiert wird.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
sape
User
Beiträge: 1157
Registriert: Sonntag 3. September 2006, 12:52

Danke für den Tipp Leonidas :) Leider bin ich der Englischen Sprache nicht so mächtig und kann das deshalb nicht machen. Wenn ich neue Informationen habe, werde ich die hier psoten.

lg
Antworten