Externe Methoden in Zope verwenden (?)
Verfasst: Dienstag 6. Dezember 2005, 02:58
Hallo,
ich habe ein Python Script, welches die Bibliothek des Paketes "Snack" (tksnack) importiert und möchtes dieses als Externe Methode in Zope benutzen.
Im Pythoninterpreter gestartet, wird die WAV-Datei 'loop1.wav' eingelesen und abgespielt. Jetzt will ich dieses Script von einer HTML Seite aus aufrufen. Die Seite ist sehr einfach und übergibt den Namen des zu ladenden Files
Ich muss jetzt zwei Dinge tun:
1. Das Pythonscript so umschreiben, dass es den Filenamen entgegen nimmt und an
die Funktion playsnd() übergibt (noch keine Ahnung wie das
geht , "context.REQUEST.file" ??)
2. Dieses Script als "Externe Methode" in Zope laden.
Wenn ich das Script in den Ordner "c:\Zope-Instance\Extensions" lade und versuche,
es in Zope mit "Select type to add" -> "External Method"
reinzuladen, bekomme ich folgende Fehlermeldung:
"tkSnack.py" und "tkSnack.pyw" liegen im Verzeichnis: "...\Python24\Lib"
und der Ordner "snacklib" mit allen nötigen Snack-DLLs, im Verzeichnis: "...\Python24\tcl"
- Wie bringe ich Zope bei wo sich diese Dateien befinden ?
- Oder muß ich das Zeugs zusätzlich ins Zopeverzeichnis kopieren ?
- Oder geht das was ich will grundsätzlich nicht, weil hier zusätzliche
Bibliotheken verwendet werden ?
nächtlichen Gruss, Seven
ich habe ein Python Script, welches die Bibliothek des Paketes "Snack" (tksnack) importiert und möchtes dieses als Externe Methode in Zope benutzen.
Code: Alles auswählen
from Tkinter import * #wird für Snack benötigt
from tkSnack import *
root = Tk()
initializeSnack(root)
path = 'G:/wavs/'
snd = Sound() #Snack Objekt
def playsnd(file)
snd.read(path + file + '.wav') #Snack Methode liest WAV-Datei
snd.play() #Snack Methode spielt WAV-Datei
playsnd('loop1')
root.mainloop()
Code: Alles auswählen
<form method="POST" action="playsound">
<table cellpadding="3" cellspacing="1">
<tr><td>File: <input type="text" file="file" size="20"></td></tr>
<tr><td><input type="submit" value="play"></td></tr>
</table>
</form>
1. Das Pythonscript so umschreiben, dass es den Filenamen entgegen nimmt und an
die Funktion playsnd() übergibt (noch keine Ahnung wie das
geht , "context.REQUEST.file" ??)
2. Dieses Script als "Externe Methode" in Zope laden.
Wenn ich das Script in den Ordner "c:\Zope-Instance\Extensions" lade und versuche,
es in Zope mit "Select type to add" -> "External Method"
reinzuladen, bekomme ich folgende Fehlermeldung:
Code: Alles auswählen
Error Type: ImportError
Error Value: No module named Snack
und der Ordner "snacklib" mit allen nötigen Snack-DLLs, im Verzeichnis: "...\Python24\tcl"
- Wie bringe ich Zope bei wo sich diese Dateien befinden ?
- Oder muß ich das Zeugs zusätzlich ins Zopeverzeichnis kopieren ?
- Oder geht das was ich will grundsätzlich nicht, weil hier zusätzliche
Bibliotheken verwendet werden ?

nächtlichen Gruss, Seven