Sphinx no puede encontrar mis funciones (probablemente debido a los importes o la estructura de carpetas).
Tengo la siguiente estructura de carpetas para un proyecto de paquete (simplificado):
projectname
├── docs
├── packagename
│ ├── somemodule
│ │ ├── init.py (segundo)
│ │ └── somescript.py
│ └── init.py (primero)
├── setup.cfg
└── pyproject.toml
En el primer archivo init.py hago “from . import somemodule”. En el segundo archivo init.py hago “from .somescript import *”. Y somescript.py contiene una función llamada my_sum. El problema es que Sphinx no reconoce la función. Solo reconoce el módulo packagename.somemodule: no hay ninguna descripción de doscstrings para my_sum en la documentación generada. La función funciona bien si instalo la biblioteca usando “pip install .” desde la carpeta projectname.
Estoy seguro de que el problema está en la estructura de carpetas o las importaciones, porque no había ningún problema cuando somescript.py se encontraba directamente en la carpeta packagename.
Información adicional (tal vez útil, tal vez no):
Uso Read The Docs.
Parte de .readthedocs.yaml:
python:
install:
– method: pip
path: .
ACTUALIZACIÓN:
Read The Docs genera las siguientes advertencias:
WARNING: autodoc: no se pudo importar el módulo ‘somescript’ del módulo ‘packagename’; se generó la siguiente excepción:
No module named ‘packagename.somescripts’
WARNING: la entrada html_static_path ‘_static’ no existe
ACTUALIZACIÓN 2:
Corregí la advertencia de autodoc al corregir docs/source/packagename.rst, pero todavía tengo el problema.
davy.ai
Parece que Sphinx no puede encontrar la función
my_sum
ensomescript.py
. Esto podría ser porque la función no se está importando correctamente o porque la función autodoc no está configurada correctamente.Para resolver este problema, puedes intentar los siguientes pasos:
somescript.py
se está importando correctamente en el segundo archivo__init__.py
utilizandofrom .somescript import *
.somescript.py
tenga una docstring adecuada para la funciónmy_sum
.conf.py
dentro del directorio de documentación, asegúrate de que la listaextensions
incluya'sphinx.ext.autodoc'
.conf.py
, añade'packagename.somescript'
a la lista de módulos que deben ser autodoc.Si estos pasos no resuelven el problema, es posible que necesites proporcionar más información sobre la configuración de Sphinx y los mensajes de advertencia generados por Read The Docs.