Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Sphinx is not able to import anything

I am trying to use sphinx to document a project of mine. I have used autodoc strings within all of my modules and files. I used sphinx-apidoc to automatically generate rst files for my code. So far, so good.

The problem is that sphinx is not able to import any of my modules, even though I have added my project to sys.path.

My unit tests pass and can import my modules just fine. I'm kind of at my wit's end; I've tried all sorts of renaming and moving and reloading and reconfiguring without success and it is very frustrating to say the least.

Here is my document structure:

project
├── collectionprocessor.py
├── config.py
├── createdb.py
├── database
│   ├── database.py
│   └── __init__.py
├── docs
│   ├── _build
│   ├── conf.py
│   ├── generated
│   ├── index.rst
│   ├── Makefile
│   ├── modules.rst
│   ├── project.database.rst
│   ├── project.document.rst
│   ├── project.mixins.rst
│   ├── project.parser.rst
│   ├── project.rst
│   ├── project.sequence.rst
│   ├── project.tests.rst
│   ├── _static
│   └── _templates
├── document
│   ├── document.py
│   ├── __init__.py
│   ├── metadata.py
│   ├── parsedparagraph.py
│   ├── sentence.py
│   ├── taggedword.py
│   └── unit.py
├── __init__.py
├── logger.py
├── mixins
│   ├── comparebydict.py
│   ├── __init__.py
│   └── kwargstodict.py
├── models.py
├── parser
│   ├── dependency.py
│   ├── documentparser.py
│   ├── __init__.py
│   └── parseproducts.py
├── README.md
├── runtests.py
├── sequence
│   ├── __init__.py
│   ├── sequenceprocessor.py
│   └── sequence.py
├── stringprocessor.py
├── structureextractor.py
├── tests
│   ├── data
│   ├── __init__.py
│   ├── __pycache__
│   ├── raw_parse.txt
│   ├── testcollectionprocessor.py
│   ├── testdocumentparser.py
│   ├── testextractor.py
│   ├── testlogger.py
│   ├── testsequenceprocessor.py
│   └── teststringprocessor.py

Here is the relevant line in the sphinx config file:

sys.path.insert(0, os.path.abspath("../"))

Here is the output of sphinx-build:

[docs]─[$]>>> sphinx-build -b html ./ ./generated/
Running Sphinx v1.2.2
loading pickled environment... done
building [html]: targets for 0 source files that are out of date
updating environment: 0 added, 7 changed, 0 removed
reading sources... [100%] project.tests                                                                                                             
/home/plasma/prog/project/docs/project.rst:22: WARNING: autodoc: failed to import module u'project.collectionprocessor'; the following exception was raised:
Traceback (most recent call last):
  File "/usr/lib/python2.7/site-packages/sphinx/ext/autodoc.py", line 335, in import_object
    __import__(self.modname)
ImportError: No module named project.collectionprocessor
/home/plasma/prog/project/docs/project.rst:30: WARNING: autodoc: failed to import module u'project.config'; the following exception was raised:
Traceback (most recent call last):
  File "/usr/lib/python2.7/site-packages/sphinx/ext/autodoc.py", line 335, in import_object
    __import__(self.modname)
ImportError: No module named project.config
/home/plasma/prog/project/docs/project.rst:38: WARNING: autodoc: failed to import module u'project.createdb'; the following exception was raised:
Traceback (most recent call last):
  File "/usr/lib/python2.7/site-packages/sphinx/ext/autodoc.py", line 335, in import_object
    __import__(self.modname)
ImportError: No module named project.createdb
/home/plasma/prog/project/docs/project.rst:46: WARNING: autodoc: failed to import module u'project.logger'; the following exception was raised:
Traceback (most recent call last):
  File "/usr/lib/python2.7/site-packages/sphinx/ext/autodoc.py", line 335, in import_object
    __import__(self.modname)
ImportError: No module named project.logger
/home/plasma/prog/project/docs/project.rst:54: WARNING: autodoc: failed to import module u'project.models'; the following exception was raised:
Traceback (most recent call last):
  File "/usr/lib/python2.7/site-packages/sphinx/ext/autodoc.py", line 335, in import_object
    __import__(self.modname)
ImportError: No module named project.models
/home/plasma/prog/project/docs/project.rst:62: WARNING: autodoc: failed to import module u'project.runtests'; the following exception was raised:
Traceback (most recent call last):
  File "/usr/lib/python2.7/site-packages/sphinx/ext/autodoc.py", line 335, in import_object
    __import__(self.modname)
ImportError: No module named project.runtests
/home/plasma/prog/project/docs/project.rst:70: WARNING: autodoc: failed to import module u'project.stringprocessor'; the following exception was raised:
Traceback (most recent call last):
  File "/usr/lib/python2.7/site-packages/sphinx/ext/autodoc.py", line 335, in import_object
    __import__(self.modname)
ImportError: No module named project.stringprocessor
/home/plasma/prog/project/docs/project.rst:78: WARNING: autodoc: failed to import module u'project.structureextractor'; the following exception was raised:
Traceback (most recent call last):
  File "/usr/lib/python2.7/site-packages/sphinx/ext/autodoc.py", line 335, in import_object
    __import__(self.modname)
ImportError: No module named project.structureextractor
/home/plasma/prog/project/docs/project.rst:87: WARNING: autodoc: failed to import module u'project'; the following exception was raised:
Traceback (most recent call last):
  File "/usr/lib/python2.7/site-packages/sphinx/ext/autodoc.py", line 335, in import_object
    __import__(self.modname)
ImportError: No module named project
/home/plasma/prog/project/docs/project.database.rst:10: WARNING: autodoc: failed to import module u'project.database.database'; the following exception was raised:
Traceback (most recent call last):
  File "/usr/lib/python2.7/site-packages/sphinx/ext/autodoc.py", line 335, in import_object
    __import__(self.modname)
ImportError: No module named project.database.database
/home/plasma/prog/project/docs/project.database.rst:19: WARNING: autodoc: failed to import module u'project.database'; the following exception was raised:
Traceback (most recent call last):
  File "/usr/lib/python2.7/site-packages/sphinx/ext/autodoc.py", line 335, in import_object
    __import__(self.modname)
ImportError: No module named project.database
/home/plasma/prog/project/docs/project.document.rst:10: WARNING: autodoc: failed to import module u'project.document.document'; the following exception was raised:
Traceback (most recent call last):
  File "/usr/lib/python2.7/site-packages/sphinx/ext/autodoc.py", line 335, in import_object
    __import__(self.modname)
ImportError: No module named project.document.document
/home/plasma/prog/project/docs/project.document.rst:18: WARNING: autodoc: failed to import module u'project.document.metadata'; the following exception was raised:
Traceback (most recent call last):
  File "/usr/lib/python2.7/site-packages/sphinx/ext/autodoc.py", line 335, in import_object
    __import__(self.modname)
ImportError: No module named project.document.metadata
/home/plasma/prog/project/docs/project.document.rst:26: WARNING: autodoc: failed to import module u'project.document.parsedparagraph'; the following exception was raised:
Traceback (most recent call last):
  File "/usr/lib/python2.7/site-packages/sphinx/ext/autodoc.py", line 335, in import_object
    __import__(self.modname)
ImportError: No module named project.document.parsedparagraph
/home/plasma/prog/project/docs/project.document.rst:34: WARNING: autodoc: failed to import module u'project.document.sentence'; the following exception was raised:
Traceback (most recent call last):
  File "/usr/lib/python2.7/site-packages/sphinx/ext/autodoc.py", line 335, in import_object
    __import__(self.modname)
ImportError: No module named project.document.sentence
/home/plasma/prog/project/docs/project.document.rst:42: WARNING: autodoc: failed to import module u'project.document.taggedword'; the following exception was raised:
Traceback (most recent call last):
  File "/usr/lib/python2.7/site-packages/sphinx/ext/autodoc.py", line 335, in import_object
    __import__(self.modname)
ImportError: No module named project.document.taggedword
/home/plasma/prog/project/docs/project.document.rst:50: WARNING: autodoc: failed to import module u'project.document.unit'; the following exception was raised:
Traceback (most recent call last):
  File "/usr/lib/python2.7/site-packages/sphinx/ext/autodoc.py", line 335, in import_object
    __import__(self.modname)
ImportError: No module named project.document.unit
/home/plasma/prog/project/docs/project.document.rst:59: WARNING: autodoc: failed to import module u'project.document'; the following exception was raised:
Traceback (most recent call last):
  File "/usr/lib/python2.7/site-packages/sphinx/ext/autodoc.py", line 335, in import_object
    __import__(self.modname)
ImportError: No module named project.document
/home/plasma/prog/project/docs/project.mixins.rst:10: WARNING: autodoc: failed to import module u'project.mixins.comparebydict'; the following exception was raised:
Traceback (most recent call last):
  File "/usr/lib/python2.7/site-packages/sphinx/ext/autodoc.py", line 335, in import_object
    __import__(self.modname)
ImportError: No module named project.mixins.comparebydict
/home/plasma/prog/project/docs/project.mixins.rst:18: WARNING: autodoc: failed to import module u'project.mixins.kwargstodict'; the following exception was raised:
Traceback (most recent call last):
  File "/usr/lib/python2.7/site-packages/sphinx/ext/autodoc.py", line 335, in import_object
    __import__(self.modname)
ImportError: No module named project.mixins.kwargstodict
/home/plasma/prog/project/docs/project.mixins.rst:27: WARNING: autodoc: failed to import module u'project.mixins'; the following exception was raised:
Traceback (most recent call last):
  File "/usr/lib/python2.7/site-packages/sphinx/ext/autodoc.py", line 335, in import_object
    __import__(self.modname)
ImportError: No module named project.mixins
/home/plasma/prog/project/docs/project.parser.rst:10: WARNING: autodoc: failed to import module u'project.parser.dependency'; the following exception was raised:
Traceback (most recent call last):
  File "/usr/lib/python2.7/site-packages/sphinx/ext/autodoc.py", line 335, in import_object
    __import__(self.modname)
ImportError: No module named project.parser.dependency
/home/plasma/prog/project/docs/project.parser.rst:18: WARNING: autodoc: failed to import module u'project.parser.documentparser'; the following exception was raised:
Traceback (most recent call last):
  File "/usr/lib/python2.7/site-packages/sphinx/ext/autodoc.py", line 335, in import_object
    __import__(self.modname)
ImportError: No module named project.parser.documentparser
/home/plasma/prog/project/docs/project.parser.rst:26: WARNING: autodoc: failed to import module u'project.parser.parseproducts'; the following exception was raised:
Traceback (most recent call last):
  File "/usr/lib/python2.7/site-packages/sphinx/ext/autodoc.py", line 335, in import_object
    __import__(self.modname)
ImportError: No module named project.parser.parseproducts
/home/plasma/prog/project/docs/project.parser.rst:35: WARNING: autodoc: failed to import module u'project.parser'; the following exception was raised:
Traceback (most recent call last):
  File "/usr/lib/python2.7/site-packages/sphinx/ext/autodoc.py", line 335, in import_object
    __import__(self.modname)
ImportError: No module named project.parser
/home/plasma/prog/project/docs/project.sequence.rst:10: WARNING: autodoc: failed to import module u'project.sequence.sequence'; the following exception was raised:
Traceback (most recent call last):
  File "/usr/lib/python2.7/site-packages/sphinx/ext/autodoc.py", line 335, in import_object
    __import__(self.modname)
ImportError: No module named project.sequence.sequence
/home/plasma/prog/project/docs/project.sequence.rst:18: WARNING: autodoc: failed to import module u'project.sequence.sequenceprocessor'; the following exception was raised:
Traceback (most recent call last):
  File "/usr/lib/python2.7/site-packages/sphinx/ext/autodoc.py", line 335, in import_object
    __import__(self.modname)
ImportError: No module named project.sequence.sequenceprocessor
/home/plasma/prog/project/docs/project.sequence.rst:27: WARNING: autodoc: failed to import module u'project.sequence'; the following exception was raised:
Traceback (most recent call last):
  File "/usr/lib/python2.7/site-packages/sphinx/ext/autodoc.py", line 335, in import_object
    __import__(self.modname)
ImportError: No module named project.sequence
/home/plasma/prog/project/docs/project.tests.rst:10: WARNING: autodoc: failed to import module u'project.tests.testcollectionprocessor'; the following exception was raised:
Traceback (most recent call last):
  File "/usr/lib/python2.7/site-packages/sphinx/ext/autodoc.py", line 335, in import_object
    __import__(self.modname)
ImportError: No module named project.tests.testcollectionprocessor
/home/plasma/prog/project/docs/project.tests.rst:18: WARNING: autodoc: failed to import module u'project.tests.testdocumentparser'; the following exception was raised:
Traceback (most recent call last):
  File "/usr/lib/python2.7/site-packages/sphinx/ext/autodoc.py", line 335, in import_object
    __import__(self.modname)
ImportError: No module named project.tests.testdocumentparser
/home/plasma/prog/project/docs/project.tests.rst:26: WARNING: autodoc: failed to import module u'project.tests.testextractor'; the following exception was raised:
Traceback (most recent call last):
  File "/usr/lib/python2.7/site-packages/sphinx/ext/autodoc.py", line 335, in import_object
    __import__(self.modname)
ImportError: No module named project.tests.testextractor
/home/plasma/prog/project/docs/project.tests.rst:34: WARNING: autodoc: failed to import module u'project.tests.testlogger'; the following exception was raised:
Traceback (most recent call last):
  File "/usr/lib/python2.7/site-packages/sphinx/ext/autodoc.py", line 335, in import_object
    __import__(self.modname)
ImportError: No module named project.tests.testlogger
/home/plasma/prog/project/docs/project.tests.rst:42: WARNING: autodoc: failed to import module u'project.tests.testsequenceprocessor'; the following exception was raised:
Traceback (most recent call last):
  File "/usr/lib/python2.7/site-packages/sphinx/ext/autodoc.py", line 335, in import_object
    __import__(self.modname)
ImportError: No module named project.tests.testsequenceprocessor
/home/plasma/prog/project/docs/project.tests.rst:50: WARNING: autodoc: failed to import module u'project.tests.teststringprocessor'; the following exception was raised:
Traceback (most recent call last):
  File "/usr/lib/python2.7/site-packages/sphinx/ext/autodoc.py", line 335, in import_object
    __import__(self.modname)
ImportError: No module named project.tests.teststringprocessor
/home/plasma/prog/project/docs/project.tests.rst:59: WARNING: autodoc: failed to import module u'project.tests'; the following exception was raised:
Traceback (most recent call last):
  File "/usr/lib/python2.7/site-packages/sphinx/ext/autodoc.py", line 335, in import_object
    __import__(self.modname)
ImportError: No module named project.tests
looking for now-outdated files... none found
pickling environment... done
checking consistency... /home/plasma/prog/project/docs/modules.rst:: WARNING: document isn't included in any toctree
done
preparing documents... done
writing output... [100%] project.tests                                                                                                              
writing additional files... (1 module code pages) _modules/index genindex search
copying static files... done
copying extra files... done
dumping search index... done
dumping object inventory... done
build succeeded, 36 warnings.
like image 879
Plasma Avatar asked May 08 '14 02:05

Plasma


1 Answers

I ended up restructuring my project so that the docs directory is at the same level as my project directory that contains all the files. This works when I use sys.path.insert(0, os.path.abspath("../")), and it's probably a bit nicer to look at.

project
    | docs/
    | project/
        | project files, etc.
    | tests/
like image 169
Plasma Avatar answered Oct 03 '22 23:10

Plasma