2011-09-11 27 views
5

PyDoc crea documentación HTML en el directorio actual al generar documentación de módulos. Realmente necesito especificar otro directorio que será un marcador de posición para la documentación generada en lugar del directorio desde el que se llama a PyDoc.Cómo decirle a PyDoc que genere documentación para el directorio definido por el usuario

Estoy usando python -m pydoc -w <MODULES_DIR> para generar documentación.

¿Esto es posible y, en caso afirmativo, cómo?

Respuesta

3

pydoc w ...

escribir la documentación HTML para un módulo en un archivo en el directorio actual . Si contiene un '/', se trata como un nombre de archivo; si nombra un directorio, la documentación se escribe para todos los contenidos.

+0

Lo siento, mi error de sintaxis. Estoy usando python -m pydoc -w pero el documento generado va al directorio actual como lo describí. Pero quiero que este documento se guarde en algún otro directorio. No conozco ningún otro cambio a PyDoc que produzca el efecto que deseo. –

+0

¿Existe el directorio que especifique? ¿Agregas a/al final del nombre del directorio? –

3

Tuve el mismo problema y encontré esta pregunta tratando de resolverlo. Tampoco pude entender cómo hacerlo, así que esta es mi solución. En lugar de intentar engañar a pydoc para que envíe a una ubicación específica, solo estoy generando la documentación en el directorio actual y moviendo los archivos a la ubicación que quiero.

En mi caso, la carpeta de destino se denomina 'doc', y la fuente se encuentra en el directorio 'semlm'

mkdir -p doc 
pydoc -w `find semlm -name '*.py'` 
mv *.html doc 

(Usted debe ser capaz de personalizar el comando pydoc como desee, pero esto es lo que funcionó para mí).

No quería escribir todo esto cada vez, así que lo puse en un Makefile. He aquí un extracto:

.PHONY: doc 

doc: 
    mkdir -p doc 
    pydoc -w `find semlm -name '*.py'` 
    mv *.html doc 

El .PHONY: doc es necesario porque el objetivo Makefile tiene el mismo nombre que una carpeta en el directorio de nivel superior (es decir, 'doc'). Ahora puedo generar la documentación en la carpeta doc ejecutando:

make doc 

Tal vez hay una forma más elegante, pero este es el mejor que he encontrado hasta ahora.

Cuestiones relacionadas