Wie funktioniert 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.
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » Samstag 10. Dezember 2005, 23:29

Ich lege noch "Wie starte ich Skripte?" aus der FAQ drauf.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Benutzeravatar
snakeseven
User
Beiträge: 405
Registriert: Freitag 7. Oktober 2005, 14:37
Wohnort: Berlin
Kontaktdaten:

Beitragvon snakeseven » Samstag 10. Dezember 2005, 23:49

Hi,
Viel kann ich dir über Py2exe nicht sagen, habe es nur kurz mit folgendem Script ausprobiert (Datei_In_Listbox_Laden.py):

Code: Alles auswählen

import string
from Tkinter import *

root = Tk()

fo = open ('G:/Titelliste.txt')
allestrings = fo.readlines()
fo.close()

# Erzeugen der Scrollbar
scb = Scrollbar(root, orient="vertical")

# Erzeugen der Listbox, Verbindung mit der Scrollbar
li = Listbox(root, height=5, yscrollcommand=scb.set)
scb["command"] = li.yview

# Einlesen der Namen in die Listbox
for z in allestrings:
    li.insert(END,string.rstrip(z))

#Anzeigen von Listbox und Scrollbar
li.pack(side="left")
scb.pack(side="left",fill="y")

root.mainloop()


Um ein Script compilieren zu lassen, mußt du ein setup.py Script erstellen. Dort schreibst du dann alles rein, was der Compiler an Informationen benötigt. In meinem Fall:

Code: Alles auswählen

from distutils.core import setup
import py2exe

setup(windows=["C:/Ablage/Python/PythonScripte/Datei_In_Listbox_Laden.py"])
setup(name='Distutils',
      packages=['distutils', 'distutils.command'],)


Jetzt führst du (unter Windows zumindest) in Start -> Ausführen folgendes Kommando aus:

Code: Alles auswählen

C:/Ablage/Python/PythonScripte/setup.py py2exe


Das Kommando enthält den Pfad des setup.py Scriptes und den Aufruf von py2exe.

Wenn alles an seinem Platz ist, sollte das eigendlich funktionieren. Am Ende hast du im Verzeichniss des Quellscriptes zwei Ordner:
'build' und 'dist'. In 'dist' ist dann auch die .exe deines Scriptes drin.

Gruss, Seven
Zuletzt geändert von snakeseven am Sonntag 11. Dezember 2005, 11:18, insgesamt 1-mal geändert.
deShoe
User
Beiträge: 6
Registriert: Samstag 10. Dezember 2005, 18:35

kk

Beitragvon deShoe » Samstag 10. Dezember 2005, 23:54

also englisch kann ich schon ich arbeite mich auch meistens erfolgreich durch die tutorial durch nur bei py2exe hats halt net geklappt ;-)
Du bist nicht in der Kommandozeile!
-aber ueber dem schwarzen dos fenster steht doch python (command line)- hmm?

der vollständige fehler heißt:
>>> python D:\hm\python24\hm\setup.py py2exe
File "<stdin>", line 1
python D:\hm\python24\hm\setup.py py2exe
^
SyntaxError: invalid syntax
deShoe
User
Beiträge: 6
Registriert: Samstag 10. Dezember 2005, 18:35

THX

Beitragvon deShoe » Samstag 10. Dezember 2005, 23:59

vielen dank @ snakeseven -das hat geholfen jetzt funzts -THX

danke für eure hilfe
deShoe
User
Beiträge: 6
Registriert: Samstag 10. Dezember 2005, 18:35

...k

Beitragvon deShoe » Sonntag 11. Dezember 2005, 00:03

ja compilieren geht jetzt..
nur das erste script das ich ausprobiert habe sagt mir:
Der Prozedureinsprungpunkt "" wurde in der DLL "KERNEL32.dll" nicht gefunden
was immer das heißen mag..
ich hab uebrigens tkinter benutzt in dem script..
Benutzeravatar
snakeseven
User
Beiträge: 405
Registriert: Freitag 7. Oktober 2005, 14:37
Wohnort: Berlin
Kontaktdaten:

Beitragvon snakeseven » Sonntag 11. Dezember 2005, 13:05

Hi deShoe,
TKinter compiliert er bei mir, aber Snack, was auf TKinter aufbaut, nicht.
Also, es gibt noch einige Geheimnisse mit py2exe, die es zu ergründen gilt.
Würde mich mal interessieren woran es gelegen hat, wenns dann doch (hoffentlich) mit dem Compilieren klappt.

Gruss, Seven
Benutzeravatar
snakeseven
User
Beiträge: 405
Registriert: Freitag 7. Oktober 2005, 14:37
Wohnort: Berlin
Kontaktdaten:

Beitragvon snakeseven » Freitag 23. Dezember 2005, 15:50

Das hier hab ich im Netz gefunden. Macht Vieles einfacher. Einfach Pfade eingeben und abschicken. Für eine Windows-EXE muß man

Code: Alles auswählen

scripts = ["%s"]
in

Code: Alles auswählen

windows = ["%s"]
umändern.


Code: Alles auswählen

"""
makeExe.py
- Simple Python script to automate the creation
  of Python executables using py2exe.

(c) 2004 Premshree Pillai (24/01/04)
http://www.qiksearch.com/
"""

## Run this file from Python root dir

import sys
import re

def getFileName():
   global fileName
   fileName = raw_input("Enter file name (rel or abs path, eg., python/file.py): ")
   try:
      fp = open(fileName)
      fp.close()
   except IOError:
      print "File does not exist!"
      getFileName()

getFileName()

package = re.split(":",fileName)
package = re.split("/",package[len(package) - 1])
package = re.split(".py",package[len(package) - 1])
package = package[0]

def getSetupName():
   global setupName
   setupName = raw_input("Enter name of setup file (or <enter> for default): ")
   if(setupName == ''):
      setupName = "setup.py"
   try:
      fp = open(setupName)
      fp.close()
      flag = raw_input("Setup file exists! Rewrite (0=no; else <enter>)? ")
      if(flag == "1"):
         getSetupName()
   except IOError:
      setupName = setupName

getSetupName()

fp = open(setupName,"w")
temp = """from distutils.core import setup
import py2exe
setup(name = "%s",
     scripts = ["%s"],
)""" % (package,fileName)
fp.write(temp)
fp.close()

sys.argv.append("py2exe")
execfile(setupName)

fp = open(setupName,"w")
temp = ""
fp.write(temp)
fp.close()

print "\n", "Executable created!"
print "Press <enter> to exit..."
if(raw_input()):
   exit

Wer ist online?

Mitglieder in diesem Forum: Bing [Bot]