Question

J'ai créé mon GAE l'application dans le répertoire " mon_application ". Dans ce répertoire, j'ai créé un fichier .py et la baptisa " my_scrypt ".

Le contenu de " my_scrypt " au début étaient comme suit:


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

Alors je l'ai couru localement sur ma machine ( Windows XP ) dans le navigateur installé ( Mozilla FireFox ) avec " Lance GAE " - tout allait bien - je pouvais voir cette phrase ( « Ceci est ma première application ») à l'écran.

Je déployé cette application GAE (encore une fois avec l'aide de « Lance GAE ») - tout allait bien à nouveau - je pouvais voir la même phrase à l'écran .

Alors je change le contenu de " my_scrypt " un peu:


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

" twill0.9 " (de ici ), a choisi et copié" twill » dossier à partir de là, et collé dans " mon_application répertoire ".

Quand je courais cette nouvelle application locale (avec " Lance GAE ") tout allait bien - je pouvais voir une liste de yahoo.com liens sur l'écran, mais quand je téléchargé cette application GAE , j'ai reçu seulement un message d'erreur.

Pourquoi est-il? Je ne pense pas que ce soit parce que la version de mécaniser utilisé par twill ici est trop vieux - le code dans " my_script " est si simple , une version de mécaniser doit être capable de le traiter.

Est-ce que GAE accepter twill (comme un module externe) du tout?

Vous pouvez voir la trace de la pile de l'erreur dans la section « Mise à jour 1 » juste en dessous (?).


UPDATE 1:

(Cette mise à jour est ma réponse à Nick)

Bonjour, Nick. J'ai vérifié la console d'administration, alors voici la trace de la pile:

<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

Était-ce utile?

La solution

Sergé tente de « sous-processus » importation. Ceci est un module Python pour les fils de frai, et ce n'est pas disponible sur App Engine. Vous aurez soit besoin de voir si vous pouvez persuader Sergé de travailler sans processus de frai (probablement en modifiant le code), ou vous aurez besoin d'utiliser mécaniser ou simplement urlfetch directement.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top