46 votes

Quelle est la meilleure façon de faire de la programmation alphabétisée en Python sous Windows?

J'ai joué avec différentes façons de faire des lettrés de la programmation en Python. J'aime noweb, mais j'ai deux problèmes principaux: d'abord, il est difficile de construire sur Windows, où je passe environ la moitié de mon temps de développement; et la seconde, il me demande de retrait de chaque morceau de code qu'il sera dans la version finale du programme - - - - que je ne sache pas nécessairement quand je l'écris. Je ne veux pas utiliser Leo, parce que je suis très attachée à Emacs.

Est-il un bon lettré outil de programmation:

  1. Fonctionne sur Windows
  2. Me permet de définir l'indentation des blocs quand ils sont utilisés, pas quand ils sont écrits
  3. Encore me permet de travailler dans Emacs

Merci!


Correction: noweb ne permettez-moi de tiret plus tard --- j'ai mal lu le papier que j'ai trouvé sur elle.

Par défaut, notangle conserve les espaces et maintient l'indentation lors de l'expansion de morceaux. Il peut donc être utilisé avec des langages comme Miranda et Haskell, dans lequel l'indentation est important

Qui me laisse avec seulement le "Fonctionne sur Windows" problème.

15voto

Matti Pastell Points 4244

J'ai écrit Pweave http://mpastell.com/pweave , qui est destiné à la génération de rapports dynamiques et utilise la syntaxe noweb. Il s'agit d'un script python pur, il s'exécute également sous Windows. Cela ne résout pas votre problème de retrait, mais vous pouvez peut-être le modifier pour cela, le code est vraiment assez simple.

11voto

Colonel Panic Points 18390

Le standard de facto dans la communauté est IPython notebook.

Excellent exemple dans lequel Peter Norvig montre des algorithmes pour résoudre le Problème du voyageur de commerce: http://nbviewer.ipython.org/url/norvig.com/ipython/TSPv3.ipynb

Plus d'exemples énumérés à https://github.com/ipython/ipython/wiki/A-gallery-of-interesting-IPython-Notebooks

7voto

Vous pouvez utiliser org-mode et babel-l'enchevêtrement.

Cela fonctionne très bien, puisque vous pouvez donner :noweb-ref à la source des blocs.

Voici un exemple minimal: Activer org-babel-enchevêtrement, puis le mettre dans le fichier 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

Vous pouvez également utiliser les propriétés de titres donnant le noweb-réf. Il peut alors même automatiquement concaténer plusieurs blocs dans un noweb de référence.

Ajouter :results output de la #+begin_src ligne du deuxième bloc pour voir les résultats d'impression en vertu de ce bloc quand vous frappez C-c C-c dans le bloc.

7voto

S.Lott Points 207588

J'ai fait cela:

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

Vous pouvez obtenir un certain nombre de web/tisser des produits qui vont vous aider à construire un document et le code en un seul coup.

Vous pouvez -- assez facilement -- écrire votre propre. Ce n'est pas la science de fusée à tirer sur le code Python blocs de la première source et l'assembler. En effet, je vous propose de rédiger votre propre Docutils directives pour assembler le code Python à partir d'un TVD document source.

Vous exécutez la première par le biais de docutils rst2html (ou Sphinx) pour produire votre dernier rapport HTML.

Vous lancez votre propre utilitaire sur le même TVD source pour extraire le code Python de blocs et de produire la version finale du module.

3voto

Norman Ramsey Points 115730

Vous pourriez trouver noweb 3 plus facile à construire sur Windows. Il a été conçu pour être plus portable que le Web standard.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X