GAE是否接受斜纹布?

时间:2010-09-19 01:10:53

标签: google-app-engine module deployment mechanize twill

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

开头的“ my_scrypt ”内容如下:


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

然后我在已安装的浏览器( Mozilla FireFox )中使用“ GAE Launcher ”在我的计算机( Windows XP )上本地运行 - 一切都很好 - 我可以在屏幕上看到那句话(“这是我的第一个应用程序”)。

然后我将此应用程序部署到 GAE (再次在“ GAE Launcher ”的帮助下) - 一切都很好 - 我可以在屏幕上看到相同的句子

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


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

下载"twill0.9"(来自here),从中选择并复制“斜纹”文件夹,并将其粘贴到“ my_application ”目录中

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

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

GAE 是否接受斜纹(作为外部模块)?

您可以在下面的“更新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

1 个答案:

答案 0 :(得分:1)

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