Seite 1 von 1

py2exe optimize option

Verfasst: Mittwoch 4. November 2009, 13:57
von INFACT
Hi,

Ich habe ein problem, wenn ich bei py2exe die option optimize: 2 dranhänge:

Code: Alles auswählen

running py2exe
*** searching for required modules ***
*** parsing results ***
creating python loader for extension 'PyQt4.QtGui' (C:\Python26\lib\site-packages\PyQt4\QtGui.pyd -> PyQt4.QtGui.pyd)
creating python loader for extension 'select' (C:\Python26\DLLs\select.pyd -> select.pyd)
creating python loader for extension '_socket' (C:\Python26\DLLs\_socket.pyd -> _socket.pyd)
creating python loader for extension 'unicodedata' (C:\Python26\DLLs\unicodedata.pyd -> unicodedata.pyd)
creating python loader for extension 'sip' (C:\Python26\lib\site-packages\sip.pyd -> sip.pyd)
creating python loader for extension '_ssl' (C:\Python26\DLLs\_ssl.pyd -> _ssl.pyd)
creating python loader for extension 'PyQt4.QtCore' (C:\Python26\lib\site-packages\PyQt4\QtCore.pyd -> PyQt4.QtCore.pyd)
creating python loader for extension 'bz2' (C:\Python26\DLLs\bz2.pyd -> bz2.pyd)
*** finding dlls needed ***
*** create binaries ***
*** byte compile python files ***
writing byte-compilation script 'c:\users\robin\appdata\local\temp\tmpe_hcax.py'
C:\Python26\pythonw.exe c:\users\robin\appdata\local\temp\tmpe_hcax.py
Traceback (most recent call last):
  File "C:\Users\robin\Desktop\socket_opener\setup.py", line 19, in <module>
    zipfile   = None
  File "C:\Python26\lib\distutils\core.py", line 169, in setup
    raise SystemExit, "error: " + str(msg)
SystemExit: error: command 'C:\Python26\pythonw.exe' failed with exit status 1
Das kommt immer nur, wenn optimize nicht 0 (dafault) ist. Das kam vorher noch nicht.
Hier ist mein setup_script:

Code: Alles auswählen

import sys
from distutils.core import setup
import py2exe

sys.argv.append("py2exe")
sys.argv.append("--includes")
sys.argv.append("sip")

setup(
    datafiles = None,
    windows=['socket_opener.py'],
    #options = {'py2exe': {'optimize': 2,'bundle_files': 3, 'compressed': True}},
    options = {'py2exe': {
        'optimize': 2,
        'bundle_files': 3,
        'compressed': True}},
    zipfile   = None
)

Verfasst: Mittwoch 4. November 2009, 14:20
von Leonidas
Kann es sein, dass c:\users\robin\appdata\local\temp\tmpe_hcax.py einen Syntaxfehler enthält? Was ist das überhaupt für ein Skript?

Verfasst: Mittwoch 4. November 2009, 14:27
von INFACT
Das generiert py2exe selbst. Das sieht dann ungefähr so aus: http://paste.pocoo.org/show/148597/
In meinem Programm ist kein Fehler, das läuft sogar mit IDLE :shock:

Verfasst: Mittwoch 4. November 2009, 17:24
von fhoech
C:\Python26\pythonw.exe c:\users\robin\appdata\local\temp\tmpe_hcax.py
Hmm, warum wird das Skript mit pythonw.exe ausgeführt? Kein Wunder, dass man da keine aussagekräftige Fehlermeldung erhält.

Verfasst: Mittwoch 4. November 2009, 17:29
von INFACT
Huch!?
Ich hab das jetzt mit python ausgeführt. Keine Fehlermeldung. Allerdings bring compressed:2 nichts mehr. Es sind ganz viele dateien geworden :?:

Verfasst: Mittwoch 4. November 2009, 17:39
von fhoech
compressed ist doch ein boolean oder war die 2 ein Tippfehler? :)

bundle_files:1 macht afaik was Du suchst (Single-File Executable).

Verfasst: Donnerstag 5. November 2009, 08:47
von INFACT
Compressed ist doch auch ein boolean?
OMG!
Ich komme mir jetzt irgentwie doof vor!
Ich dachte 'bundle_files': 3 wäre besser als 'bundle_files': 1,
:roll: :roll: :roll:
Danke Trotzdem

Verfasst: Montag 12. April 2010, 13:01
von The Spirit
fhoech hat geschrieben:compressed ist doch ein boolean oder war die 2 ein Tippfehler? :)

bundle_files:1 macht afaik was Du suchst (Single-File Executable).
hi.
sorry, das ich den thread nochmal hoch hole, aber ich versuch mich auch grade daran.
will, das am ende möglichst wenig dateien rauskommen.
aber leider läuft meine exe nur, wenn ich "bundle_files" auf 3 setze.
weder auf 2 noch auf dem gewünschten 1 läuft die exe.
kommt dann ne windows fehlermeldung und ich kann nur beenden oder bugreport an ms schicken.
jemand ne idee, woran das liegen kann?
ich nutze die setup.py vorlage aus dem link.

Verfasst: Montag 12. April 2010, 14:38
von ms4py
Was hast du für eine Anwendung? GUI, Konsole?
Mit Tkinter funktioniert das bundle_files AFAIK nicht.

Ansonsten kannst du auch noch mit NSIS ein SingleFile-Executable machen.

Verfasst: Montag 12. April 2010, 14:48
von The Spirit
hab ne gui anwendung.
nutze Tkinter, dann weis ja ich woran es liegt.
danke für die info.
werd mir mal das NSIS ansehen.