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.
Antworten
Nicholls
User
Beiträge: 7
Registriert: Donnerstag 6. März 2014, 20:14

Halli Hallo,
verzeiht mir, ich weiß, dass es sowohl hier als auch überall sonst im World Wide Web schon etliche solcher Forenthreads gibts, aber ich bin anscheinend einfach zu blöd, um zu verstehen, wie das mit py2exe funktioniert. Ich hab mir das Teil runtergeladen entzippt und schließlich bei meinem Python-Ordner in dem Ordner "Lib" abgespeichert. Anschließend habe ich eine Python-Datei erstellt und dort folgendes reingeschrieben:

Code: Alles auswählen

from distutils.core import setup
import py2exe

setup(console=['[i]meinScript.py[/i]'])
Meine Frage lautet also: Was muss ich jetzt machen?
Beziehungsweise: Was hab ich bis hierher falsch gemacht?
Liebe Grüße,
Nicholls :)
Benutzeravatar
/me
User
Beiträge: 3555
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

Dieses Entpacken in den Lib-Ordner scheint mir merkwürdig und ich habe das auch auf die Schnelle auch so nicht in der Dokumentation gefunden. Woher hast du diese Vorgehensweise? Anhand der aktuellen Downloadzahlen von Py2Exe gehe ich davon aus, dass die meisten Anwender einfacherweise ohnehin eher den Installer als das ZIP-Paket nehmen.

Gesetzt den Fall, deine Installation sei so richtig, dann kannst du jetzt einfach mit Schritt 3 aus dem py2exe-Tutorial weitermachen.
Nicholls
User
Beiträge: 7
Registriert: Donnerstag 6. März 2014, 20:14

ja, ich hab keine Ahnung, ob das so funktioniert, bei den Installern funktioniert das jdfs nich wirklich. Wenn ich das richtig verstehe, liegt das daran, dass ich Python 3.0 hab und die Installer die Python-Version nicht finden..
Benutzeravatar
/me
User
Beiträge: 3555
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

Nicholls hat geschrieben:ja, ich hab keine Ahnung, ob das so funktioniert, bei den Installern funktioniert das jdfs nich wirklich. Wenn ich das richtig verstehe, liegt das daran, dass ich Python 3.0 hab und die Installer die Python-Version nicht finden..
Wenn Py2exe nicht für Python 3.x ausgelegt ist, dann kannst du es auch nicht einfach dazu überreden indem du wild Dateien aus dem Paket an unpassende Stellen kopierst.

Versuch doch alternativ mal cx_Freeze.
Nicholls
User
Beiträge: 7
Registriert: Donnerstag 6. März 2014, 20:14

aukay, scheint mir eine gute Alternative zu sein.
Hab nochmal nachgeguckt 3.3.3 hab ich.
Hab mir also das für Pyhon 3.3 runtergeladen und installiert.
Sagt mir aber trotzdem

Code: Alles auswählen

ImportError: No module named 'cx_Freeze'
Nicholls
User
Beiträge: 7
Registriert: Donnerstag 6. März 2014, 20:14

Hab jetzt die Dateien, die einfach im Downloadverzeichnis installiert wurden, einfach manuell in den Python "Lib" Ordner gepackt. Jetzt scheint er das cx_Freeze zumindest mal zu erkennen. Wenn ich den Befehl "setup.py build" nun durchs cmd jage, kommt nun allerdings sowas in der Art:

Code: Alles auswählen

E:\PythonTest>setup.py build
running build
running build_exe
Traceback (most recent call last):
  File "E:\PythonTest\setup.py", line 7, in <module>
    executables = [Executable("Setup_Testprogramm.py")]
  File "D:\Programme\Python\lib\site-packages\cx_Freeze\dist.py", line 365, in s
etup
    distutils.core.setup(**attrs)
  File "D:\Programme\Python\lib\distutils\core.py", line 148, in setup
    dist.run_commands()
  File "D:\Programme\Python\lib\distutils\dist.py", line 929, in run_commands
    self.run_command(cmd)
  File "D:\Programme\Python\lib\distutils\dist.py", line 948, in run_command
    cmd_obj.run()
  File "D:\Programme\Python\lib\distutils\command\build.py", line 126, in run
    self.run_command(cmd_name)
  File "D:\Programme\Python\lib\distutils\cmd.py", line 313, in run_command
    self.distribution.run_command(command)
  File "D:\Programme\Python\lib\distutils\dist.py", line 948, in run_command
    cmd_obj.run()
  File "D:\Programme\Python\lib\site-packages\cx_Freeze\dist.py", line 234, in r
un
    metadata = metadata)
  File "D:\Programme\Python\lib\site-packages\cx_Freeze\freezer.py", line 101, i
n __init__
    for n in self._GetDefaultBinPathExcludes() + binPathExcludes]
  File "D:\Programme\Python\lib\site-packages\cx_Freeze\freezer.py", line 235, i
n _GetDefaultBinPathExcludes
    import cx_Freeze.util
ImportError: DLL load failed: %1 ist keine zulässige Win32-Anwendung.
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Nicholls hat geschrieben:Hab jetzt die Dateien, die einfach im Downloadverzeichnis installiert wurden, einfach manuell in den Python "Lib" Ordner gepackt.
Die wurden wahrscheinlich nicht einfach dort hin installiert, wahrscheinlich hast du bei der Installation etwas vergessen. Wie hast du denn versucht es zu installieren?

Und bitte höre auf Dateien einfach in die Pythoninstallation zu kippen. Im besten Fall funktioniert etwas nicht, im schlimmsten Fall machst du dir etwas kaputt.
Das Leben ist wie ein Tennisball.
Nicholls
User
Beiträge: 7
Registriert: Donnerstag 6. März 2014, 20:14

Ich hab den Installer einfach durchlaufen lassen. Ich habs nochmal deinstalliert, ums anschließend neu zu installieren. Ich hab versucht, ihm zu sagen, dass er's n den Python-Ordner installieren soll. Dann kam allerdings irgendeine Fehlermeldung. Danach hab ich's reparieren lassen. Wenn ich die setup.py ausführe, dann funktioniert auch alles wieder wie gehabt. Übers cmd kommt dann aber wieder die gleiche Fehlermeldung wie auch schon zuvor..
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Nicholls hat geschrieben:Ich hab versucht, ihm zu sagen, dass er's n den Python-Ordner installieren soll. Dann kam allerdings irgendeine Fehlermeldung. Danach hab ich's reparieren lassen.
Wie hast du versucht den Ordner anzugeben (genauer Befehl)? Wie hast du versucht es zu reparieren (genauer Befehl)? Und wie sieht diese Fehlermeldung ("irgendeine Fehlermeldung" ist ein wenig unpräzise) aus? Du musst schonein wenig Information liefern, bei uns sind ständig die Glaskugeln defekt ;-)
Das Leben ist wie ein Tennisball.
Nicholls
User
Beiträge: 7
Registriert: Donnerstag 6. März 2014, 20:14

Also, nochmal zum Mitschreiben:
Ich hab cx Freeze nun nochmal deinstalliert und anschließend folgendes gemacht:

1. Installer ausführen
Bild
Hier hab' ich einfach die "cx_Freeze-4.3.2.win-amd64-py3.3.msi" augeführt.

2. Benutzer wählen
Bild
Hier hab' ich angegeben, dass alle Benutzer cx Freeze nutzen können sollen.

3. Python Installation wählen
Bild
Hier ist wohl der springende Punkt. Ich hab' ihn nun nochmal einfach mal so weitermachen lassen.

4. Installationsvorgang
Bild
Hier installiert er eben.

5. Dateien im Downloadverzeichnis
Bild
Hier sieht man, dass er das Zeug nun einfach in den Downloadordner gepackt hat.

Also, was tun beim 3. Schritt?
Oder was ist hier falsch :D
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Bei Punkt 3 müsstest du die Python-Installation auswählen, für die es installiert werden soll. Ist vielleicht kein Python 3.3 (zumindest scheint dein cx_Freeze das haben zu wollen) installiert (für den entsprechenden Benutzer) und du kannst es deshalb nicht auswählen?
Das Leben ist wie ein Tennisball.
Nicholls
User
Beiträge: 7
Registriert: Donnerstag 6. März 2014, 20:14

ja, danach sieht es wohl aus, aber in meinem Python Ordner steht in der Readme.txt ganz unmissverständlich
This is Python version 3.3.3
Antworten