Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google app engine GAE接受斜纹布吗?_Google App Engine_Module_Deployment_Mechanize_Twill - Fatal编程技术网

Google app engine GAE接受斜纹布吗?

Google app engine GAE接受斜纹布吗?,google-app-engine,module,deployment,mechanize,twill,Google App Engine,Module,Deployment,Mechanize,Twill,我已在目录“my_application”中创建了我的GAE应用程序。在这个目录中,我创建了一个.py文件,并将其命名为“my_scrypt” 开头的“my_scrypt”内容如下: 然后我在安装的浏览器(Mozilla FireFox)中,在我的机器(Windows XP)上本地运行它,并使用“GAE Launcher”-一切正常-我可以在屏幕上看到这句话(“这是我的第一个应用程序”) 然后,我将这个应用程序部署到了GAE(再次借助“GAE Launcher”)——一切都很好——我可以在屏

我已在目录“my_application”中创建了我的GAE应用程序。在这个目录中,我创建了一个.py文件,并将其命名为“my_scrypt

开头的“my_scrypt”内容如下:



然后我在安装的浏览器(Mozilla FireFox)中,在我的机器(Windows XP)上本地运行它,并使用“GAE Launcher”-一切正常-我可以在屏幕上看到这句话(“这是我的第一个应用程序”)

然后,我将这个应用程序部署到了GAE(再次借助“GAE Launcher”)——一切都很好——我可以在屏幕上看到相同的句子

然后我稍微更改了“my_scrypt”的内容:



下载(从),从那里选择并复制“twill”文件夹,并将其粘贴到“my_application”目录中

当我在本地运行这个新应用程序时(使用“GAE Launcher”),一切都很好-我可以在屏幕上看到yahoo.com链接列表,但当我将这个应用程序上载到GAE时,我只收到一条错误消息

为什么会这样?我不认为这是因为twill使用的mechanize版本太旧了,“my_script”中的代码太简单了,任何版本的mechanize都必须能够处理它

GAE是否接受twill(作为外部模块)

您可以在下面的“更新1”部分查看错误的堆栈跟踪(↓).


更新1:

(此更新是我对尼克的回答)

你好,尼克。我检查了管理控制台,这里是堆栈跟踪:

<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
:没有名为fcntl的模块
回溯(最近一次呼叫最后一次):
文件“/base/data/home/apps/silkybutton/1.344911014283513184/buffer.py”,第1行,在
从twill.commands导入*
文件“/base/data/home/apps/silkybutton/1.344911014283513184/twill/_uuinit_uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
从shell导入TwillCommandLoop
文件“/base/data/home/apps/silkybutton/1.344911014283513184/twill/shell.py”,第9行,在
从twill导入命令,解析,_版本__
文件“/base/data/home/apps/silkybutton/1.344911014283513184/twill/commands.py”,第70行,在
从浏览器导入斜纹浏览器
文件“/base/data/home/apps/silkybutton/1.344911014283513184/twill/browser.py”,第17行,在
从浏览器导入补丁机器浏览器
文件“/base/data/home/apps/silkybutton/1.344911014283513184/twill/_browser.py”,第9行,在
从utils导入FixedHTTPBasicAuthHandler,函数为TTPrefReshProcessor
文件“/base/data/home/apps/silkybutton/1.344911014283513184/twill/utils.py”,第12行,在
导入子流程
文件“/base/data/home/apps/silkybutton/1.344911014283513184/twill/other_packages/subprocess.py”,第378行,在
进口fcntl

Twill正在尝试导入“subprocess”。这是一个用于生成线程的Python模块,在App Engine上不可用。您需要查看是否可以说服Twill在不生成进程的情况下工作(可能通过修改代码),或者您需要直接使用mechanize或简单的urlfetch。

如果您不说您收到了“错误消息”,而是告诉我们您收到了什么错误,并包含stacktrace,这将非常有用。没有它,就不可能说出什么错误。你好,尼克!!!错误消息的文本非常简单:“错误:服务器错误。服务器遇到错误,无法完成您的请求。如果问题仍然存在,请报告您的问题,并提及此错误消息和导致此问题的查询”也许,浏览器中窗口的标题更具信息性:“500服务器错误”我不知道,但也许,数字500说明了一些问题。”…并包括stacktrace"-当我在本地运行此代码时,我没有任何问题,因此,我没有得到任何stacktrace。但是,当我将其部署到GAE时,我只收到该错误消息,同样没有stacktrace。任何未捕获的异常都会在App Engine中显示为该异常,因为显示用户堆栈跟踪是一种不好的做法。您需要登录到管理控制台,然后继续转到“日志”页面查看实际的异常。哇!!!我不知道!谢谢你告诉我,我现在要查看管理控制台。谢谢你,尼克!!!我想我会尝试说服Twill在不生成进程的情况下工作,但我不知道如何做,甚至不知道从哪里开始。一个小问题:为什么会这样当我在本地计算机上运行完全相同的应用程序时,在这个模块中不需要e?您在本地计算机上运行的是Python 2.6吗?App Engine只支持2.5,并且在Python 2.6中引入了子流程模块。我正在运行Python 2.5.4。您认为我可以查看Python 2.6包并从在我的应用程序中有吗?没有。子流程是2.6的一部分,是一个本机C模块;你不能简单地从2.5复制它。而且,正如我所说,你不能在App Engine上分叉进程。你确定SDK没有在2.6下运行吗?如果你安装了多个Python版本,你可以运行与你想象的不同的版本。是的,but fcntl的导入本身在子流程模块内,这在App Engine上不受支持。
from twill.commands import *
config('use_tidy', '0')
go ("http://us.yahoo.com/")
showlinks()
<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