41

私は、Python で文芸的なプログラミングを行うさまざまな方法を試してきました。私はnowebが好きですが、主な問題が 2 つあります。1 つ目は、開発時間の約半分を費やしている Windows でビルドするのが難しいことです。2 つ目は、コードの各チャンクを最終的なプログラムになるようにインデントする必要があることです。これはいつ書くかは必ずしもわかりません。私は Emacs にとても愛着があるので、Leo は使いたくありません。

次のような優れた読み書き可能なプログラミング ツールはありますか。

  1. Windowsで実行
  2. チャンクが書き込まれるときではなく、使用されるときにチャンクのインデントを設定できるようにします
  3. それでもEmacsで作業できます

ありがとう!


訂正:後でインデントできnoweb ます--- 見つけた紙を読み違えてしまいました。

デフォルトでは、notangleチャンクを展開するときに空白を保持し、インデントを維持します。したがって、Miranda や Haskell などのインデントが重要な言語で使用できます。

これにより、「Runs on Windows」の問題だけが残ります。

4

7 に答える 7

14

私は Pweave http://mpastell.com/pweaveを作成しました。これは、動的なレポート生成を目的としており、noweb 構文を使用しています。これは純粋な python スクリプトなので、Windows でも動作します。インデントの問題は解決しませんが、そのために変更できるかもしれません。コードは非常に単純です。

于 2010-05-22T06:01:40.837 に答える
9

コミュニティの事実上の標準は 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にリストされているその他の例

于 2014-03-02T18:38:13.153 に答える
7

org-mode と babel-tangle を使用できます。

:noweb-ref をソース ブロックに指定できるため、これは非常にうまく機能します。

最小限の例を次に示します: org-babel-tangle を有効にしてから、これを file に入れます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 を指定するために見出しのプロパティを使用することもできます。その後、複数のソース ブロックを 1 つの noweb 参照に自動的に連結することもできます。

2 番目のブロックの行に追加:results outputして、#+begin_srcブロックをヒットしたときにそのブロックの下の印刷結果を確認しますC-c C-c

于 2012-06-22T11:27:27.813 に答える
7

これは私がしました:

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

ドキュメントとコードを一気に作成するのに役立つ Web/Weave 製品をいくつでも入手できます。

非常に簡単に、自分で書くことができます。Python コード ブロックを RST ソースからヤンクしてアセンブルするのは、ロケット サイエンスではありません。実際、RST ソース ドキュメントから Python コードをアセンブルする独自の Docutils ディレクティブを作成することをお勧めします。

docutils rst2html (または Sphinx) を使用して RST を実行し、最終的な HTML レポートを作成します。

同じ RST ソースで独自のユーティリティを実行して、Python コード ブロックを抽出し、最終的なモジュールを生成します。

于 2009-08-12T20:39:55.273 に答える
3

noweb 3は、Windows でビルドする方が簡単だと思うかもしれません。標準の noweb よりも移植性が高くなるように設計されています。

于 2010-04-25T20:02:16.497 に答える
0

私の最後の LP ツールも参照してください: http://code.google.com/p/nano-lp。特別な入力形式を必要とせず、Markdown/MultiMarkdown、reStructuredText、OpenOffice/LibreOffice、Creole、TeX/LaTeX をサポートし、超軽量でクリーンな構文を備えています。これ以上不可解な文芸プログラムは必要ありません。

于 2013-01-15T15:46:49.663 に答える