2010-09-19 37 views
0

我在目录“my_application”中创建了我的GAE应用程序。在这个目录中,我创建了一个.py文件并将其命名为“my_scrypt”。GAE是否接受斜纹呢?

的开始 “my_scrypt” 的含量如下:


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

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

然后我(与“GAE启动”的帮助下再次)部署该应用程序GAE - 一切都很好,又 - 我可以在屏幕上看到相同的句子。

然后,我改变 “my_scrypt” 的比特的内容:


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

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

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

这是为什么?我不认为这是因为版本机械化正在使用斜纹这里太旧 - 在“my_script”的代码是如此简单,任何版本机械化必须能够处理它。

是否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

如果不是说你得到了“错误信息”,而是告诉我们你得到了什么错误,并且包含了堆栈跟踪,这将会非常有用。没有它,就不可能说出什么问题。 – 2010-09-19 09:18:53

+0

你好,尼克!错误消息的文本相当简单:“错误:服务器错误 服务器遇到错误,无法完成请求 如果问题仍然存在,请报告您的问题并提及此错误消息以及导致此问题的查询“也许,浏览器窗口的标题更具信息性:”500服务器错误“我不知道,但也许,500的数字说了些什么。 – brilliant 2010-09-19 09:41:59

+0

“...并包含堆栈跟踪” - 当我在本地运行此代码时,我没有任何问题,因此,我没有任何堆栈跟踪。但是,当我将它部署到GAE时,我只会收到该错误消息,并且没有堆栈跟踪。 – brilliant 2010-09-19 10:28:24

回答

1

斜纹试图导入“子”。这是用于产生线程的Python模块,并且它在App Engine上不可用。你需要看看你是否可以说服Twill在没有产卵过程的情况下工作(可能通过修改代码),或者你需要直接使用机械化或简单的urlfetch。

+0

谢谢你,尼克!!!我想我会试图说服Twill在没有产卵过程的情况下工作,除非我不知道如何去做,甚至不知道从哪里开始。一个小问题:当我在本地计算机上运行完全相同的应用程序时,为什么在这个模块中没有这种需求? – brilliant 2010-09-19 11:56:45

+1

你在本地机器上运行Python 2.6吗? App Engine只支持2.5,而子进程模块是在Python 2.6中引入的。 – 2010-09-19 12:07:52

+0

我正在运行Python 2.5.4。你认为我可以看看Python 2.6包,并从那里将该模块传输到我的应用程序中吗? – brilliant 2010-09-19 12:38:16