Domanda

Ho creato il mio GAE applicazione nella directory " my_application ". All'interno di questa directory ho creato un file .py e lo ha chiamato " my_scrypt ".

Il contenuto di " my_scrypt " in principio sono stati i seguenti:


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

Poi mi sono imbattuto in locale sulla mia macchina ( Windows XP ) nel browser installato ( Mozilla FireFox ) con " GAE Launcher " - tutto è andato bene - ho potuto vedere quella frase ( " Questa è la mia prima applicazione ") sullo schermo.

Poi ho schierato questa applicazione per GAE (ancora una volta con l'aiuto di " GAE Launcher ") - tutto è andato bene ancora una volta - ho potuto vedere la stessa frase sullo schermo .

Poi ho cambiato il contenuto della " my_scrypt " un po ':


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

" twill0.9 " (da qui ), ha scelto e copiato" strong>" cartella da lì, e incollato in "twill my_application " directory.

Quando ho eseguito questa nuova applicazione a livello locale (con " GAE Launcher ") tutto è andato bene - ho potuto vedere un elenco di yahoo.com i collegamenti sullo schermo, ma quando ho caricato questa applicazione per GAE , ho ricevuto solo un messaggio di errore.

Perché è così? Non credo che sia perché la versione di mechanize utilizzato da twill qui è troppo vecchio - il codice in " mio_script " è così semplice , qualsiasi versione di mechanize deve essere in grado di gestirlo.

La GAE accettare twill (come modulo esterno) a tutti?

È possibile visualizzare l'analisi dello stack dell'errore nella sezione di destra "Update 1" in basso (?).


UPDATE 1:

(Questo aggiornamento è la mia risposta a Nick)

Ciao, Nick. Ho controllato la console di amministrazione, ecco l'analisi dello stack:

<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

È stato utile?

Soluzione

Twill sta cercando di 'sottoprocesso' importazione. Questo è un modulo Python per la deposizione delle uova le discussioni, e non è disponibile su App Engine. Potrete sia necessario vedere se si può convincere Twill di lavoro senza la deposizione delle uova processi (probabilmente modificando il codice), o avrete bisogno di utilizzare mechanize o semplicemente UrlFetch direttamente.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top