1

Je tente de générer automatiquement la documentation pour mon projet Django en utilisant Sphinx avec les extensions autodoc et napoleon.Sphinx échoue lors de la génération de la documentation pour le projet Django

En utilisant sphinx-quickstart J'ai créé la structure suivante:

MyDjangoProject 
├── __init__.py 
├── config 
│   ├── __init__.py 
│   ├── settings.py 
│   ├── urls.py 
│   └── wsgi.py 
├── docs 
│   ├── Makefile 
│   ├── build 
│   └── source 
│    ├── _static 
│    ├── _templates 
│    ├── conf.py 
│    └── index.rst 
├── myfirstapp 
│   ├── __init__.py 
│   ├── models.py 
│   └── views.py 
├── mysecondapp 
│   ├── __init__.py 
│   ├── models.py 
│   └── views.py 

... 

J'ai personnalisé docs/source/conf.py pour refléter la structure de mon projet.

import os 
import sys 

proj_folder = os.path.realpath(
    os.path.join(os.path.dirname(__file__), '../..')) 

sys.path.append(proj_folder) 

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'config.settings') 

import django 
django.setup() 

extensions = ['sphinx.ext.autodoc', 'sphinx.ext.intersphinx', 'sphinx.ext.napoleon', 'sphinx.ext.viewcode'] 

# The rest of the default configuration... 

Puis je vais à la racine de mon projet et exécutez sphinx-apidoc -f -o docs/source .. Cela ajoute un fichier .rst pour chaque module à docs/source.

Enfin, je vais à MyDjangoProject et exécuter make html. Cela échoue avec une erreur pour chaque module dire

Traceback (most recent call last): 
    File "/Users/Oskar/git/MyDjangoProject/venv/lib/python2.7/site-packages/sphinx/ext/autodoc.py", line 551, in import_object 
    __import__(self.modname) 
ImportError: No module named MyDjangoProject.myfirstapp 

Qu'est-ce que je fais mal?

Répondre

2

Puisque vous avez ajouté MyDjangoProject au chemin de python, vous devez importer myfirstapp comme myfirstapp au lieu de MyDjangoProject.myfirstapp.