用 C 扩展 Python 和 Zope
2008-09-30 13:06:49 来源:WEB开发网要进行编译,您必须使包含的文件和库都可用。Python 的标准 Zope 安装没有包含这些文件,因此您需要从 www.python.org(请参阅 参考资料)安装 Python 的常规安装。在 Windows 上,您还必须从源代码安装的 PC 目录中获取 config.h 文件;它是 UNIX 安装为您编译的 config.h 的手工版。因此,在 UNIX 上,您应该已经拥有它了。
一旦这些都完成后,您就会得到一个以“.pyd”为扩展名的文件。把这个文件放到 Python 安装目录下的“lib”目录(在 Zope 下,Python 位于“bin”目录,因此您的扩展得结束于“bin/lib”目录,奇怪吧。)然后您就可以调用它了,就像调用任何源生的 Python 模块一样。
>>> import foo;
>>> foo.bar ("This is a test");
14
做到这里时,我的第一个问题是问自己该如何用 C 定义从 Python 中可见的 类。事实上,我可能问了一个错误的问题。在我已研究的示例中,特定于 Python 的一切都只 用 Python 来完成,也都只调用从您的扩展中导出的 C 函数。
把它带到 Zope 中去
一旦完成了您的 Python 扩展,下一步就是使 Zope 能和它一起工作。您有几种方式可以选择,但在一定程度上,您希望您的扩展以什么方式与 Zope 一起工作将首先影响到您编译扩展的方式。从 Zope 内使用 Python(以及用 C 所做的扩展)代码的基本方式是:
如果函数很简单,您可以把它当作一个变量。这些被叫做“外部方法”。
更复杂的类,可以从 Zope 脚本中调用(这是 Zope 2.3 的一个新功能)。
您可以定义一个 Zope Product,然后可以用 ZClass(一组已做好的、Web 可访问的对象)扩展它,在脚本中使用它,根据它的自有权限发布它(它的实例被当作页来对待)。
更多精彩
赞助商链接