Frage

Ich habe meine erstellt GAE Anwendung im Verzeichnis " my_application ". In diesem Verzeichnis habe ich eine Py-Datei und dem Namen " my_scrypt ".

Der Inhalt von " my_scrypt " am Anfang waren wie folgt:


print 'Content-Type: text/plain'
print ''
print 'This is my first application'

Dann lief ich es lokal auf meinem Rechner ( Windows XP ) in dem installierten Browser ( Mozilla FireFox ) mit " GAE Launcher " - alles war in Ordnung - ich kann diesen Satz sehen ( „ Dies ist meine erste Anwendung “) auf dem Bildschirm.

Dann entfalten ich diese Anwendung auf GAE (wieder mit Hilfe von „ GAE Launcher “) - alles war wieder in Ordnung - ich konnte den gleichen Satz auf dem Bildschirm .

Dann änderte ich den Inhalt von " my_scrypt " ein bisschen:


from twill.commands import *
config('use_tidy', '0')
go ("http://us.yahoo.com/")
showlinks()

" twill0.9 " (von hier ), wählt und kopiert" Köper “Ordner von dort, und es in klebte " my_application " Verzeichnis.

Wenn laufe ich diese neue Anwendung vor Ort (mit " GAE Launcher ") war alles in Ordnung - ich konnte sehen, eine Liste von yahoo.com links auf dem Bildschirm, aber wenn ich hochgeladen diese Anwendung auf GAE , erhielt ich nur eine Fehlermeldung.

Warum ist es so? Ich glaube nicht, es ist, weil die Version von mechanize , indem verwendet wird Köper hier ist zu alt - der Code in " my_script " ist so einfach, jede Version von mechanize muss in der Lage sein, es zu handhaben.

Does GAE akzeptieren Köper (als externes Modul) überhaupt?

Sie können in der "Update 1" Abschnitt rechts unten (?) den Stack-Trace des Fehlers anzuzeigen.


UPDATE 1:

(Dieses Update ist meine Antwort auf Nick)

Hallo, Nick. Ich die Admin-Konsole überprüft, so ist hier der Stack-Trace:

<type 'exceptions.ImportError'>: No module named fcntl
Traceback (most recent call last):
  File "/base/data/home/apps/silkybutton/1.344911014283513184/bumper.py", line 1, in <module>
    from twill.commands import *
  File "/base/data/home/apps/silkybutton/1.344911014283513184/twill/__init__.py", line 52, in <module>
    from shell import TwillCommandLoop
  File "/base/data/home/apps/silkybutton/1.344911014283513184/twill/shell.py", line 9, in <module>
    from twill import commands, parse, __version__
  File "/base/data/home/apps/silkybutton/1.344911014283513184/twill/commands.py", line 70, in <module>
    from browser import TwillBrowser
  File "/base/data/home/apps/silkybutton/1.344911014283513184/twill/browser.py", line 17, in <module>
    from _browser import PatchedMechanizeBrowser
  File "/base/data/home/apps/silkybutton/1.344911014283513184/twill/_browser.py", line 9, in <module>
    from utils import FixedHTTPBasicAuthHandler, FunctioningHTTPRefreshProcessor
  File "/base/data/home/apps/silkybutton/1.344911014283513184/twill/utils.py", line 12, in <module>
    import subprocess
  File "/base/data/home/apps/silkybutton/1.344911014283513184/twill/other_packages/subprocess.py", line 378, in <module>
    import fcntl

War es hilfreich?

Lösung

Twill versucht zu importieren 'subprocess'. Dies ist ein Python-Modul Threads zum Laichen, und es ist nicht auf App Engine zur Verfügung. Sie werden entweder Notwendigkeit sehen, wenn Sie ohne Laichen Prozesse Twill zur Arbeit überzeugen können (wahrscheinlich durch den Code zu ändern), oder Sie mechanize verwenden müssen oder einfach direkt urlfetch.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top