Sphinx is not able to import anything

2024/9/28 5:30:41

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.
Answer

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/
https://en.xdnf.cn/q/71375.html

Related Q&A

Python : why a method from super class not seen?

i am trying to implement my own version of a DailyLogFile from twisted.python.logfile import DailyLogFileclass NDailyLogFile(DailyLogFile):def __init__(self, name, directory, rotateAfterN = 1, defaultM…

Extract features from last hidden layer Pytorch Resnet18

I am implementing an image classifier using the Oxford Pet dataset with the pre-trained Resnet18 CNN. The dataset consists of 37 categories with ~200 images in each of them. Rather than using the final…

Python Graphs: Latex Math rendering of node labels

I am using the following code to create a pygraphviz graph. But is it possible to make it render latex math equations (see Figure 1)? If not, is there an alternative python library that plots similar…

Given general 3D plane equation

Lets say I have a 3D plane equation:ax+by+cz=dHow can I plot this in python matplotlib?I saw some examples using plot_surface, but it accepts x,y,z values as 2D array. I dont understand how can I conv…

Spark-submit fails to import SparkContext

Im running Spark 1.4.1 on my local Mac laptop and am able to use pyspark interactively without any issues. Spark was installed through Homebrew and Im using Anaconda Python. However, as soon as I try…

Is there a Python API for event-driven Kafka consumer?

I have been trying to build a Flask app that has Kafka as the only interface. For this reason, I want have a Kafka consumer that is triggered when there is new message in the stream of the concerned to…

SWIG python initialise a pointer to NULL

Is it possible to initialise a ptr to NULL from the python side when dealing with SWIG module?For example, say I have wrapped a struct track_t in a swig module m (_m.so), I can create a pointer to the…

Replacing punctuation in a data frame based on punctuation list [duplicate]

This question already has answers here:Fast punctuation removal with pandas(4 answers)Closed 5 years ago.Using Canopy and Pandas, I have data frame a which is defined by:a=pd.read_csv(text.txt)df=pd.Da…

How to import one submodule from different submodule? [duplicate]

This question already has answers here:Relative imports for the billionth time(14 answers)Closed 6 years ago.My project has the following structure:DSTC/st/__init__.pya.pyg.pytb.pydstc.pyHere is a.py i…

How to add dimension to a tensor using Tensorflow

I have method reformat in which using numpy I convert a label(256,) to label(256,2) shape. Now I want to do same operation on a Tensor with shape (256,)My code looks like this (num_labels=2) :--def ref…