Каков наилучший способ грамотного программирования на Python в Windows?[закрыто]

StackOverflow https://stackoverflow.com/questions/1267280

Вопрос

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

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

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

Спасибо!


Исправление: noweb делает позвольте мне сделать отступ позже - я неправильно прочитал бумагу, которую нашел на нем.

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

Это оставляет меня только с проблемой "Работает в Windows".

Это было полезно?

Решение

Я сделал это:

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

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

Вы можете - довольно легко - написать свой собственный.Вытаскивать блоки кода Python из ПЕРВОГО исходного кода и собирать их - это не ракетостроение.Действительно, я предлагаю вам написать свои собственные директивы Docutils для сборки кода Python из ПЕРВОГО исходного документа.

Вы запускаете ПЕРВЫЙ через docutils rst2html (или Sphinx) для создания вашего окончательного HTML-отчета.

Вы запускаете свою собственную утилиту на том же ПЕРВОМ исходном коде для извлечения блоков кода Python и создания конечных модулей.

Другие советы

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

Стандартом де-факто в сообществе являются ноутбуки IPython.

Отличный пример, в котором Питер Норвиг демонстрирует алгоритмы для решения задачи Коммивояжера: http://nbviewer.ipython.org/url/norvig.com/ipython/TSPv3.ipynb

Дополнительные примеры, перечисленные на https://github.com/ipython/ipython/wiki/A-gallery-of-interesting-IPython-Notebooks

Вы могли бы использовать org-mode и babel-tangle.

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

Вот минимальный пример: Активировать org-babel-клубок, затем поместите это в файл 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 в квартале.

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

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

Нашел этот инструмент полезным: https://github.com/bslatkin/pyliterate

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top