在Windows上用Python进行文献编程的最佳方法是什么?

46 投票
7 回答
16106 浏览
提问于 2025-04-15 13:33

我最近在尝试用不同的方法在Python中进行文献编程。我喜欢noweb,但我有两个主要问题:首先,它在Windows上很难安装,而我大约有一半的开发时间都是在Windows上;其次,它要求我在写每一段代码时就要按照最终程序的格式来缩进,但我在写的时候不一定知道最终的格式是什么。我不想用Leo,因为我非常喜欢Emacs。

有没有一个好的文献编程工具,满足以下条件:

  1. 能在Windows上运行
  2. 让我在使用代码块时设置缩进,而不是在写的时候设置
  3. 还能让我在Emacs中工作

谢谢!


更正一下:noweb其实是允许我稍后再缩进的——我之前看错了相关的资料。

默认情况下,notangle在展开代码块时会保留空白和缩进。因此,它可以与像Miranda和Haskell这样的语言一起使用,因为在这些语言中,缩进是很重要的。

这样我就只剩下“能在Windows上运行”的问题了。

7 个回答

11

在这个社区里,大家普遍使用的标准是IPython笔记本。

这里有个很棒的例子,彼得·诺维格展示了如何用算法来解决旅行商问题:https://nbviewer.org/url/norvig.com/ipython/TSP.ipynb

更多的例子可以在这里找到:https://github.com/jupyter/jupyter/wiki

15

我写了一个叫做 Pweave 的工具,网址是 http://mpastell.com/pweave,它主要用于动态生成报告,使用的是 noweb 语法。这个工具是用纯 Python 写的,所以在 Windows 系统上也能运行。它并不能解决你的缩进问题,不过你可以尝试自己修改一下,因为代码其实挺简单的。

7

我做了这个:

http://sourceforge.net/projects/pywebtool/

你可以找到很多网络工具,帮助你一次性创建文档和代码。

其实,你也可以很简单地自己写一个。这并不是很复杂的事情,只需要从 RST 源文件中提取出 Python 代码块,然后把它们组合起来就行。实际上,我建议你自己写一些 Docutils 指令,用来从 RST 源文件中组装 Python 代码。

你可以通过 docutils 的 rst2html(或者 Sphinx)来处理 RST 文件,生成最终的 HTML 报告。

然后,你可以在同一个 RST 源文件上运行你自己的工具,提取出 Python 代码块,生成最终的模块。

撰写回答