在Windows上用Python进行文献编程的最佳方法是什么?
我最近在尝试用不同的方法在Python中进行文献编程。我喜欢noweb
,但我有两个主要问题:首先,它在Windows上很难安装,而我大约有一半的开发时间都是在Windows上;其次,它要求我在写每一段代码时就要按照最终程序的格式来缩进,但我在写的时候不一定知道最终的格式是什么。我不想用Leo,因为我非常喜欢Emacs。
有没有一个好的文献编程工具,满足以下条件:
- 能在Windows上运行
- 让我在使用代码块时设置缩进,而不是在写的时候设置
- 还能让我在Emacs中工作
谢谢!
更正一下:noweb
其实是允许我稍后再缩进的——我之前看错了相关的资料。
默认情况下,
notangle
在展开代码块时会保留空白和缩进。因此,它可以与像Miranda和Haskell这样的语言一起使用,因为在这些语言中,缩进是很重要的。
这样我就只剩下“能在Windows上运行”的问题了。
7 个回答
在这个社区里,大家普遍使用的标准是IPython笔记本。
这里有个很棒的例子,彼得·诺维格展示了如何用算法来解决旅行商问题:https://nbviewer.org/url/norvig.com/ipython/TSP.ipynb
更多的例子可以在这里找到:https://github.com/jupyter/jupyter/wiki
我写了一个叫做 Pweave 的工具,网址是 http://mpastell.com/pweave,它主要用于动态生成报告,使用的是 noweb 语法。这个工具是用纯 Python 写的,所以在 Windows 系统上也能运行。它并不能解决你的缩进问题,不过你可以尝试自己修改一下,因为代码其实挺简单的。
我做了这个:
http://sourceforge.net/projects/pywebtool/
你可以找到很多网络工具,帮助你一次性创建文档和代码。
其实,你也可以很简单地自己写一个。这并不是很复杂的事情,只需要从 RST 源文件中提取出 Python 代码块,然后把它们组合起来就行。实际上,我建议你自己写一些 Docutils 指令,用来从 RST 源文件中组装 Python 代码。
你可以通过 docutils 的 rst2html(或者 Sphinx)来处理 RST 文件,生成最终的 HTML 报告。
然后,你可以在同一个 RST 源文件上运行你自己的工具,提取出 Python 代码块,生成最终的模块。