Подтвердить что ты не робот

Какой лучший способ сделать грамотное программирование на Python в Windows?

Я играл с различными способами грамотного программирования на Python. Мне нравится noweb, но у меня есть две основные проблемы: во-первых, сложно построить Windows, где я потрачу около половины моих время разработки; и во-вторых, это требует от меня отступать каждый кусок кода, поскольку он будет в финальной программе, который я не обязательно знаю, когда я его пишу. Я не хочу использовать Лео, потому что я очень привязан к Emacs.

Есть ли хороший инструмент программирования грамотности, который:

  • Работает в Windows
  • Позволяет мне устанавливать отступ кусков, когда они используются, а не когда они написаны
  • Все еще позволяет мне работать в Emacs

Спасибо!


Коррекция: noweb позволяет мне отступать позже --- Я неправильно прочитал документ, который я нашел на нем.

  

По умолчанию notangle сохраняет пробелы и сохраняет отступы при расширении фрагментов. Поэтому его можно использовать с такими языками, как Miranda и Haskell, в которых значителен отступ

  

Это оставляет мне проблему с "Runs on Windows".

4b9b3361

Ответ 1

Я сделал это:

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

Вы можете получить любое количество продуктов web/weave, которые помогут вам создать документ и код одним махом.

Вы можете - довольно легко - написать свой собственный. Это не ракетостроение, чтобы вырвать блоки кода Python из источника RST и собрать его. В самом деле, я предлагаю вам написать свои собственные директивы Docutils для сборки кода Python из исходного документа RST.

Вы запускаете RST через docutils rst2html (или Sphinx), чтобы создать окончательный отчет HTML.

Вы запускаете свою собственную утилиту в том же источнике RST для извлечения блоков кода Python и создания окончательных модулей.

Ответ 2

Я написал Pweave http://mpastell.com/pweave, который предназначен для создания динамических отчетов и использует синтаксис noweb. Это чистый python script, поэтому он также работает в Windows. Он не исправляет проблему с отступом, но, возможно, вы можете изменить его для этого, код действительно очень прост.

Ответ 4

Вы можете использовать org-mode и babel-клубок.

Это работает очень хорошо, поскольку вы можете дать: noweb-ref исходным блокам.

Вот минимальный пример: Активировать 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 в блоке.

Ответ 5

Вы можете найти noweb 3, который можно легко создать на Windows. Он был разработан, чтобы быть более портативным, чем стандартный noweb.

Ответ 6

Смотрите также мой последний инструмент LP: http://code.google.com/p/nano-lp. Он не требует специального формата ввода, поддерживает Markdown/MultiMarkdown, reStructuredText, OpenOffice/LibreOffice, Creole, TeX/LaTeX и имеет суперлегкий и чистый синтаксис - не более загадочные грамотные программы.