2014-05-08 11 views
5

Sto provando a usare la sfinge per documentare un mio progetto. Ho usato le stringhe autodoc all'interno di tutti i miei moduli e file. Ho usato sphinx-apidoc per generare automaticamente i file rst per il mio codice. Fin qui tutto bene.Sphinx non è in grado di importare nulla

Il problema è che sfinge, non è in grado di importare uno dei miei moduli, anche se ho aggiunto il mio progetto a sys.path.

I miei test di unità passano e possono importare i miei moduli bene. Sono un po 'alla fine del mio spirito; Ho provato tutti i tipi di ridenominazione e spostamento e ricarica e riconfigurazione senza successo ed è molto frustrante per non dire altro.

Qui è la mia struttura del documento:

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 

Ecco la riga relativa nel file sfinge config:

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

Ecco l'output di 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. 
+0

No, stesso problema. – Plasma

+2

In base al percorso di importazione non riuscito è necessario sys.path.insert (0, os.path.abspath ("../../")) –

+0

+1 max. Apparentemente, non stavo guardando o pensavo seriamente la scorsa notte. Questo dovrebbe funzionare Oppure rimuovi il "progetto". nei tuoi rsts prima dei tuoi moduli. – Cole

risposta

3

I ho finito per ristrutturare il mio progetto in modo che la directory docs sia allo stesso livello della directory del mio progetto th at contiene tutti i file. Funziona quando uso sys.path.insert(0, os.path.abspath("../")) ed è probabilmente un po 'più bello da guardare.

project 
    | docs/ 
    | project/ 
     | project files, etc. 
    | tests/ 
+0

sys.path.insert (0, os.path.abspath (os.path.pardir)): D –

0

Iam un po 'tardi per la festa qui è la mia soluzione:

Devi andare 2 directorys up:

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

Non funziona su python3.x afaik.

Sfinge non è molto python3 compatibile, in esecuzione __import__(module_name)Eimportlib.import_module(module_name) sia il lavoro nel mio interprete, ma non in sfinge.

Ho provato a controllare il ramo principale della sfinge, ho cambiato il mio interprete in python3.4 e ho ottenuto errori sui moduli rimossi nella serie 3.x. Si può vedere il mio rapporto problema qui:

https://github.com/sphinx-doc/sphinx/issues/2046

+0

Sembra che ora stia lavorando con Python3. Sto usando py3.5 e sphinx1.3.2. –

Problemi correlati