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

时间:2009-08-12 16:32:55

标签: python windows literate-programming noweb

我一直在玩各种用Python编写文字的方法。我喜欢noweb,但我有两个主要问题:第一,很难在Windows上构建,我花了大约一半的开发时间;第二,它要求我缩进每个代码块,因为它将在最终的程序中 - 我写的时候不一定知道。我不想使用Leo,因为我非常依赖Emacs。

是否有一个好的文字编程工具:

  1. 在Windows上运行
  2. 允许我在使用时设置块的缩进,而不是在它们被写入时设置
  3. 仍让我在Emacs工作
  4. 谢谢!


    更正:noweb 允许我稍后缩进 - 我误读了我在其上找到的论文。

      
        
          

    默认情况下,notangle会在扩展块时保留空格并保持缩进。因此,它可以与Miranda和Haskell等语言一起使用,其中缩进很重要

        
      

    这让我只有“在Windows上运行”的问题。

7 个答案:

答案 0 :(得分:12)

我写了Pweave http://mpastell.com/pweave,其目的是生成动态报告并使用noweb语法。它是一个纯python脚本,因此它也可以在Windows上运行。它不能解决你的缩进问题,但也许你可以修改它,代码非常简单。

答案 1 :(得分:8)

社区中的事实标准是IPython笔记本。

Peter Norvig演示算法解决旅行商问题的优秀例子:http://nbviewer.ipython.org/url/norvig.com/ipython/TSPv3.ipynb

https://github.com/ipython/ipython/wiki/A-gallery-of-interesting-IPython-Notebooks

列出的更多示例

答案 2 :(得分:7)

我这样做了:

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

您可以获得任意数量的网络/编织产品,帮助您一举构建文档和代码。

你可以 - 很容易 - 自己编写。将Python代码块从RST源中抽出并组装它并不是火箭科学。实际上,我建议您编写自己的Docutils指令,以便从RST源文档中汇编Python代码。

您通过docutils rst2html(或Sphinx)运行RST以生成最终的HTML报告。

您在同一个RST源上运行自己的实用程序,以提取Python代码块并生成最终模块。

答案 3 :(得分:7)

你可以使用org-mode和babel-tangle。

这很有效,因为你可以给:noweb-ref来源块。

以下是一个最小的示例:Activate org-babel-tangle,然后将其放入文件noweb-test.org

#+begin_src python :exports none :noweb-ref c
abc = "abc"
#+end_src

#+begin_src python :noweb yes :tangle noweb-test.py
def x():
  <<c>>
  return abc

print(x())
#+end_src

您还可以使用标题属性来提供noweb-ref。然后,它甚至可以自动将多个源块连接成一个noweb引用。

:results output添加到第二个块的#+begin_src行,以便在您点击该块中的C-c C-c时查看该块下的打印结果。

答案 4 :(得分:3)

您可能会发现noweb 3更容易在Windows上构建。它被设计成比标准的noweb更便携。

答案 5 :(得分:0)

另请参阅我的上一个LP工具:http://code.google.com/p/nano-lp。它不需要特殊的输入格式,支持Markdown / MultiMarkdown,reStructuredText,OpenOffice / LibreOffice,Creole,TeX / LaTeX,并且具有超轻和干净的语法 - 不再是神秘的文字程序。

答案 6 :(得分:0)

发现此工具很有用:https://github.com/bslatkin/pyliterate