WEB开发网
开发学院软件开发Python 使用 Net-SNMP 和 IPython 阅读

使用 Net-SNMP 和 IPython

 2008-09-30 12:45:39 来源:WEB开发网   
核心提示: 令人激动的是,IPython 中的后台线程是一种非常有价值的功能,使用 Net-SNMP 和 IPython(8),但它只能与支持异步线程的库一起工作,不幸的是,因为与其他特性一起,它提供了一种为 API 创建可测试文档的方法,Net-SNMP 是同步的,如果您对这一点感兴趣

令人激动的是,IPython 中的后台线程是一种非常有价值的功能,但它只能与支持异步线程的库一起工作。不幸的是,Net-SNMP 是同步的。如果您对这一点感兴趣,那么可以通过将 s.oid 值更改为 .iso 来进行测试。在查询完成之前,您应该可以注意到,IPython 解释器发生了“阻塞”或者“挂起”。尽管只是一个警告,但对整个 .iso 树的 SNMP 遍历可能会花费较长的时间,因此您可能会接受我的观点。

当然,还有另一种解决方案。您可以使用 Python 所提供的众多处理库中的其中一个,为这个阻塞的进程派生新的进程。Python Cheese Shop 提供了一些第三方库。如果您正在使用 easy_install,那么要安装一个包(如 Parallel Python)并使用 Net-SNMP 来测试这个库,将是相当简单的,因此这将由您来决定。

easy_install http://www.parallelpython.com/downloads/pp/pp-1.5.zip

这里要展示的最后一个特性是,在 IPython Shell 中运行单元测试。在对模块进行更改时,需要频繁地运行单元测试,而这也是非常容易的。您需要添加一个标记以运行 run -e,这样一来,您就可以在 IPython Shell 中避免回溯到单元测试模块。您可以在本文所附带的源文件中下载这个单元测试。

请注意,IPython 0.8.2 还有一个新的文档测试特性,它允许您在 IPython 中生成文档测试。文档测试是 Python 的一个很好的特性,因为与其他特性一起,它提供了一种为 API 创建可测试文档的方法。下面给出了一个示例,以说明如何在 IPython 中为我们的模块运行 doctest:

清单 6.以 doctest 模式运行 IPython

In [5]: %doctest_mode
*** Pasting of code with ">>>" or "..." has been enabled.
Exception reporting mode: Plain
Doctest mode is: ON
>>> from snmpinput import snmpSessionBaseClass
>>> s = snmpSessionBaseClass()
>>> s.query()
('Linux devmws2.racemi.com 2.6.9-55.0.2.EL #1 Tue Jun 26 14:08:18 EDT 2007 i686',)

上一页  3 4 5 6 7 8 9  下一页

Tags:使用 Net SNMP

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接