/ / Sphinx-api kann keine Module des Django-Projekts importieren - Django, Python-Sphinx

Sphinx-api kann Module des Django-Projekts nicht importieren - django, python-sphinx

Ich bin bereits in meiner virtuellen Umgebung und ich bin sicher, dass sich alles auf dem Python-Pfad befindet.

(myenv)admin@ubuntu:/var/lib/mydirectory/doc$ sphinx-apidoc -o . ../testproject/

Creating file ./testproject.rst.
Creating file ./testproject.apps.rst.
# ... and many more .... #
Creating file ./modules.rst.

(myenv)admin@ubuntu:/var/lib/mydirectory/doc$ make html
sphinx-build -b html -d _build/doctrees   . _build/html
Making output directory...
Running Sphinx v1.1.2
loading pickled environment... not yet created
building [html]: targets for 17 source files that are out of date
updating environment: 17 added, 0 changed, 0 removed

Traceback (most recent call last):t
File "/var/lib/server/myenv/lib/python2.6/site-packages/sphinx/ext/autodoc.py", line 321, in import_object
__import__(self.modname)
ImportError: No module named webclient.__init__
# ... and many more .... #

/var/lib/mydirectory/doc/testproject.rst:7: WARNING: autodoc can"t import/find module "testproject.__init__", it reported error: "No module named testproject.__init__", please check your spelling and sys.path
# ... and many more .... #

Wenn ich die HTML-Dateien öffne, werden nur Überschriften und Abschnittsüberschriften angezeigt. Keine Autodocs.

Was verursacht dieses Problem? Ich bin bereits in meiner virtuellen Umgebung ...

Irgendeine Idee? Ich benutze Sphinx 1.1.2.

Vielen Dank.

Antworten:

2 für die Antwort № 1

Ich bin kein Experte für Sphinx. Aber die Antwort ist meiner Meinung nach ziemlich klar.

Erstens zeigen die Fehlermeldungen, dass die Module nicht importierbar sind. Dies bedeutet, dass die Importanweisungen in einigen .py-Dateien falsch sind.

Mögliche Ursachen:

  1. Legacy-Importanweisungen
  2. Inkorrekte Importanweisungen
    • Ebenen-Tiefen-Import
    • Tippfehler
  3. Module, die sich nicht im aktiven Python-Pfad befinden

2.b ist von besonderem Interesse. Wenn Sie sich in myapp / mysubapp / models.py befinden und myapp / views.py importieren möchten, müssen Sie die folgende Anweisung angeben:

# myapp/mysubapp/models.py
import mysite.myapp.view         # correct
import myapp.view                # incorrect

Überprüfen Sie die einzelnen WARNING-Meldungen und die entsprechenden .py-Dateien. Suchen Sie die entsprechende Importanweisung und überprüfen Sie die Verfügbarkeit.

Nun zurück zum virtualenv-Problem. Mir scheint, dass Ihr Virtualenv auch eine Hauptursache sein könnte. Schau dir einfach den ersten Fehler an:

ImportError: No module named webclient.__init__

Das ist ein verdammtes Problem. Stellen Sie sicher, dass Ihre Pfadvariablen korrekt eingerichtet wurden.