我创造了我的 GAE 目录中的应用程序”我的应用程序“。在此目录内,我创建了一个.py文件并命名了”my_scrypt".

内容的内容my_scrypt“一开始就是以下内容:


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

然后我在我的机器上本地运行它(Windows XP)在安装的浏览器中(火狐浏览器) 和 ”GAE发射器“ - 一切都很好 - 我可以看到那句话(”这是我的第一个申请“) 屏幕上。

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

然后我更改了内容”my_scrypt“ 一点点:


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

下载 "Twill0.9" (从 这里),选择并复制”斜纹“从那里来的文件夹,然后将其粘贴在其中”我的应用程序“ 目录。

当我在本地运行此新应用程序时(使用”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

有帮助吗?

解决方案

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top