2010-03-14 10 views
18

Sembra che ci sia una pletora di strumenti di documentazione per Python. Un altro che ho incontrato è epydoc. Sembra che Sphinx sia lo standard di fatto, perché è usato per generare i documenti ufficiali di Python. Qualcuno può per favore ordinare lo stato attuale degli strumenti di documentazione di Python per me?Qual è la relazione tra docutils e Sphinx?

+0

Stato attuale? Cosa significa? Puoi ampliarlo? La Sfinge richiede docutili; epydoc può usare la stessa notazione RST. Cosa vuoi sapere? Può essere più preciso? –

+0

ad es. Quali strumenti hanno un forte supporto per la comunità, uno sviluppo attivo? Esiste una soluzione incumbent, o ce ne sono molte con nessuna che abbia un seguito significativamente più ampio? – allyourcode

+0

Forse dovresti modificare il titolo di questa domanda. –

risposta

22

epydoc e Sphinx sono diversi tipi di strumenti.

Sono gli stessi, nel senso che:

  • Entrambi utilizzano ReST via docutils.
  • Entrambi sono molto Pythonic nella loro attenzione
  • Sia in grado di generare codice HTML e PDF la documentazione

Essi sono diversi per la loro attenzione.

  • Epydoc è incentrato sulla documentazione API (Developer). Ottieni più risultati più velocemente con Epydoc. Lo punti al tuo codice sorgente e ottieni qualcosa. Questo è ciò che voglio da uno strumento di documentazione API.
  • Sphinx è incentrato sulla documentazione generale (utente). Mentre Sphinx ricava molte informazioni dal tuo codice sorgente, devi aggiungerne un po 'di più. Sphinx può generare documentazione API, ma non è così semplice, e IMO non fa un buon lavoro come Epydoc. So che alcuni non saranno d'accordo perché la Sfinge è stata scelta per Python. MA, dipende da quanto lavoro si vuole mettere in esso. Adoro la Sfinge per la documentazione generale.

Quindi dipende da quanto lavoro si vuole mettere e cosa si sta documentando.

+1

Grazie per aver spiegato cosa hanno in comune questi strumenti (ad es. La loro relazione con docutili) e le loro differenze. Che cosa rende epydoc migliore per la documentazione API e la Sfinge migliore per la documentazione funzionale? Hai detto che entrambi usano il reST. Sembra che ci sia un sacco di sovrapposizioni. È solo una questione di convenienza? Inoltre, lo sviluppo di epydoc non sembra essere molto attivo. L'ultimo impegno è stato a febbraio 2009, e l'ultima corrispondenza sulla lista di sviluppo è stata nel maggio 2009. – allyourcode

+2

Bene, la risposta facile al perché uno è meglio in una cosa che un altro è che è il modo in cui sono stati progettati. Epydoc è fatto per estrarre il codice e Sphinx è fatto per generare molta documentazione dai file ReST che scrivi. C'è molta sovrapposizione. Sfinge è il nuovo ragazzo sul blocco. Ho sentito dire che in .7 avrà una generazione di auto-generazione molto migliore. Ho molto rispetto per Epydoc ma Sphinx sembra avere tutto lo slancio in questo momento. Mi piace perché sembra la documentazione di python.org E penso che sia migliore. –

+2

Sphinx non è incentrato sulla documentazione generale dell'utente. Sfinge è uno strumento che ti aiuta a scrivere una documentazione completa e dettagliata, che semplicemente non puoi fornire concatenando le docstring. Sphinx supporterà anche i cosiddetti domini con 1.0 che permetteranno di documentare un progetto scritto in più lingue, ad esempio una webapp scritta in Python, Javascript e C. – DasIch

2

Recentemente ho cambiato da Python2 a Python3 e ho trovato che non c'era alcun pacchetto Epydoc per Python3. Quindi sembra che con Python3 ci si concentri chiaramente sull'utilizzo di Sphinx come documentazione API.