Qual è il modo migliore per farlo di programmazione letterata in Python su Windows? [chiuso]
-
13-09-2019 - |
Domanda
Ho giocato con i vari modi di fare programmazione alfabetizzati in Python. Mi piace noweb
, ma ho due problemi principali con esso: in primo luogo, si tratta di duramente per costruire su Windows, dove trascorro circa la metà il mio tempo di sviluppo; e la seconda, mi obbliga a rientrare ogni pezzo di codice come sarà nel programma finale --- che non necessariamente so quando scrivo. Non voglio usare Leo, perché sto molto legato a Emacs.
C'è un buon strumento di programmazione letterato che:
- gira su Windows
- mi permette di impostare il rientro dei pezzi quando sono utilizzati, non quando sono scritte
- consente Ancora farmi lavorare in Emacs
Grazie!
Correzione: noweb
non mi permetta di trattino entro --- ho letto male la carta che ho trovato su di esso.
Per impostazione predefinita,
notangle
preserva gli spazi e mantiene il rientro in caso di ampliamento pezzi. Può quindi essere utilizzato con linguaggi come Miranda e Haskell, in cui rientro è significativo
Questo mi lascia con solo il "Compatibile con Windows" problema.
Soluzione
Ho fatto questo:
http://sourceforge.net/projects/pywebtool/
È possibile ottenere qualsiasi numero di prodotti web / tessuto che vi aiuterà a costruire un documento e il codice in un colpo solo.
È possibile - abbastanza facilmente - scrivere il proprio. Non è la scienza a razzo per tirare i blocchi di codice Python da sorgente RST e assemblarlo. Anzi, vi consiglio di scrivere le proprie direttive docutils per assemblare il codice Python da un documento di origine RST.
Si esegue la RST attraverso docutils rst2html (o Sfinge) per produrre il report HTML finale.
Si esegue il programma di utilità sulla stessa fonte RST per estrarre i blocchi di codice Python e produrre i moduli finali.
Altri suggerimenti
Ho scritto Pweave http://mpastell.com/pweave , che si rivolge per la generazione di report dinamici e utilizza la sintassi noweb. Si tratta di uno script python puro modo che venga eseguito anche su Windows. Essa non risolve il problema trattino, ma forse è possibile modificarlo per questo, il codice è davvero molto semplice.
Lo standard de facto nella comunità è notebook ipython.
eccellente esempio in cui Peter Norvig dimostra algoritmi per risolvere il problema del commesso viaggiatore: http: // nbviewer.ipython.org/url/norvig.com/ipython/TSPv3.ipynb
Altri esempi elencati https://github.com/ipython/ipython / wiki / A-galleria-di-interessanti-ipython-Notebook
Si potrebbe usare org-mode e babel-groviglio.
Che funziona abbastanza bene, dal momento che si può dare:. Noweb-ref ai blocchi di origine
Ecco un esempio minimo: Attivare org-babel-groviglio , poi mettere questo nel 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
È inoltre possibile utilizzare le proprietà di titoli per dare il noweb-ref. Può quindi concatenare anche automaticamente più blocchi di origine in un riferimento noweb.
Aggiungi :results output
alla linea #+begin_src
del secondo blocco di vedere i risultati di stampa ai sensi di tale blocco quando si colpisce C-c C-c
nel blocco.
Si potrebbe trovare noweb 3 più facile da costruire su Windows. E 'stato progettato per essere più portabile di noweb standard.
Si veda anche il mio ultimo strumento LP: http://code.google.com/p/nano -lp . Non richiede il formato di input speciale, supporta Markdown / MultiMarkdown, reStructuredText, OpenOffice / LibreOffice, creolo, TeX / LaTeX e ha super leggero e la sintassi pulita -. I programmi di alfabetizzati non più criptici
Trovato questo strumento per essere utile: https://github.com/bslatkin/pyliterate