Audiotool "Snack" mit Py2exe compilieren

Gute Links und Tutorials könnt ihr hier posten.
Antworten
snakeseven
User
Beiträge: 405
Registriert: Freitag 7. Oktober 2005, 14:37
Wohnort: Berlin
Kontaktdaten:

Sonntag 25. Dezember 2005, 12:58

Lange hatte ich Probleme Scripte, die auf die Library des Audiopaketes "Snack" http://www.speech.kth.se/snack/ zurückgreifen, zu compilieren. Falls es anderen auch so geht, hier die Lösung:

Das Script wie gewohnt mit Py2exe compilieren. Py2exe generiert einen Ordner "dist". In diesem Ordner befindet sich ein Ordner "tcl". Dort hinein aus dem Verzeichnis ".../Python24/tcl/" den Ordner "snacklib" kopieren. tksnack.pyc wird von Py2exe ins library-Zip gepackt, muß also nicht mitkopiert werden. Danach müßte die Anwendung als EXE lauffähig sein. Mit dem folgenden Tool läßt sich Py2exe komfortabel aus dem Interpreter heraus starten:

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",
     windows = ["%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
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Sonntag 25. Dezember 2005, 15:28

Ich hab das ganze Mal nach "Links und Tutorials" verschoben, da es ja sowas wie ein kleines Tutorial ist.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Antworten