0

I am running a dockerized Cookiecutter django app and I can't get sphinx to work with the project. I set it up and it does create files when I run autodoc but when I run make html it gives me so many errors:

WARNING: autodoc: failed to import module 'admin' from module 'building_data'; the following exception was raised:
Traceback (most recent call last):
  File "/Users/micromegas/miniconda3/envs/website/lib/python3.7/site-packages/sphinx/ext/autodoc/importer.py", line 32, in import_module
    return importlib.import_module(modname)
  File "/Users/micromegas/miniconda3/envs/website/lib/python3.7/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1006, in _gcd_import
  File "<frozen importlib._bootstrap>", line 983, in _find_and_load
  File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 677, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 728, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "/Users/micromegas/myprojectfolder/myproject/building_data/admin.py", line 2, in <module>
    from .models import Building, BuildingGroup, DemandHeat, DemandCool, TimeSeries
  File "/Users/micromegas/myprojectfolder/myproject/building_data/models.py", line 6, in <module>
    from simulation_api.models import Project
  File "/Users/micromegas/myprojectfolder/myproject/simulation_api/models.py", line 1, in <module>
    from config.settings.storage_backends import MediaStoragePrivate
  File "/Users/micromegas/myprojectfolder/myproject/config/settings/storage_backends.py", line 1, in <module>
    from storages.backends.s3boto3 import S3Boto3Storage
  File "/Users/micromegas/miniconda3/envs/website/lib/python3.7/site-packages/storages/backends/s3boto3.py", line 40, in <module>
    class S3Boto3StorageFile(File):
  File "/Users/micromegas/miniconda3/envs/website/lib/python3.7/site-packages/storages/backends/s3boto3.py", line 58, in S3Boto3StorageFile
    buffer_size = setting('AWS_S3_FILE_BUFFER_SIZE', 5242880)
  File "/Users/micromegas/miniconda3/envs/website/lib/python3.7/site-packages/storages/utils.py", line 21, in setting
    return getattr(settings, name, default)
  File "/Users/micromegas/miniconda3/envs/website/lib/python3.7/site-packages/django/conf/__init__.py", line 79, in __getattr__
    self._setup(name)
  File "/Users/micromegas/miniconda3/envs/website/lib/python3.7/site-packages/django/conf/__init__.py", line 64, in _setup
    % (desc, ENVIRONMENT_VARIABLE))
django.core.exceptions.ImproperlyConfigured: Requested setting AWS_S3_FILE_BUFFER_SIZE, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings.

WARNING: autodoc: failed to import module 'models' from module 'building_data'; the following exception was raised:
Traceback (most recent call last):
  File "/Users/micromegas/miniconda3/envs/website/lib/python3.7/site-packages/sphinx/ext/autodoc/importer.py", line 32, in import_module
    return importlib.import_module(modname)
  File "/Users/micromegas/miniconda3/envs/website/lib/python3.7/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1006, in _gcd_import
  File "<frozen importlib._bootstrap>", line 983, in _find_and_load
  File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 677, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 728, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "/Users/micromegas/myprojectfolder/myproject/building_data/models.py", line 6, in <module>
    from simulation_api.models import Project
  File "/Users/micromegas/myprojectfolder/myproject/simulation_api/models.py", line 1, in <module>
    from config.settings.storage_backends import MediaStoragePrivate
  File "/Users/micromegas/myprojectfolder/myproject/config/settings/storage_backends.py", line 1, in <module>
    from storages.backends.s3boto3 import S3Boto3Storage
  File "/Users/micromegas/miniconda3/envs/website/lib/python3.7/site-packages/storages/backends/s3boto3.py", line 40, in <module>
    class S3Boto3StorageFile(File):
  File "/Users/micromegas/miniconda3/envs/website/lib/python3.7/site-packages/storages/backends/s3boto3.py", line 58, in S3Boto3StorageFile
    buffer_size = setting('AWS_S3_FILE_BUFFER_SIZE', 5242880)
  File "/Users/micromegas/miniconda3/envs/website/lib/python3.7/site-packages/storages/utils.py", line 21, in setting
    return getattr(settings, name, default)
  File "/Users/micromegas/miniconda3/envs/website/lib/python3.7/site-packages/django/conf/__init__.py", line 79, in __getattr__
    self._setup(name)
  File "/Users/micromegas/miniconda3/envs/website/lib/python3.7/site-packages/django/conf/__init__.py", line 64, in _setup
    % (desc, ENVIRONMENT_VARIABLE))
django.core.exceptions.ImproperlyConfigured: Requested setting AWS_S3_FILE_BUFFER_SIZE, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings.

WARNING: autodoc: failed to import module 'urls' from module 'building_data'; the following exception was raised:
Traceback (most recent call last):
  File "/Users/micromegas/miniconda3/envs/website/lib/python3.7/site-packages/sphinx/ext/autodoc/importer.py", line 32, in import_module
    return importlib.import_module(modname)
  File "/Users/micromegas/miniconda3/envs/website/lib/python3.7/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1006, in _gcd_import
  File "<frozen importlib._bootstrap>", line 983, in _find_and_load
  File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 677, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 728, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "/Users/micromegas/myprojectfolder/myproject/building_data/urls.py", line 2, in <module>
    from .views import DetailBuildingGroupView, \
  File "/Users/micromegas/myprojectfolder/myproject/building_data/views.py", line 9, in <module>
    from .models import BuildingGroup
  File "/Users/micromegas/myprojectfolder/myproject/building_data/models.py", line 6, in <module>
    from simulation_api.models import Project
  File "/Users/micromegas/myprojectfolder/myproject/simulation_api/models.py", line 1, in <module>
    from config.settings.storage_backends import MediaStoragePrivate
  File "/Users/micromegas/myprojectfolder/myproject/config/settings/storage_backends.py", line 1, in <module>
    from storages.backends.s3boto3 import S3Boto3Storage
  File "/Users/micromegas/miniconda3/envs/website/lib/python3.7/site-packages/storages/backends/s3boto3.py", line 40, in <module>
    class S3Boto3StorageFile(File):
  File "/Users/micromegas/miniconda3/envs/website/lib/python3.7/site-packages/storages/backends/s3boto3.py", line 58, in S3Boto3StorageFile
    buffer_size = setting('AWS_S3_FILE_BUFFER_SIZE', 5242880)
  File "/Users/micromegas/miniconda3/envs/website/lib/python3.7/site-packages/storages/utils.py", line 21, in setting
    return getattr(settings, name, default)
  File "/Users/micromegas/miniconda3/envs/website/lib/python3.7/site-packages/django/conf/__init__.py", line 79, in __getattr__
    self._setup(name)
  File "/Users/micromegas/miniconda3/envs/website/lib/python3.7/site-packages/django/conf/__init__.py", line 64, in _setup
    % (desc, ENVIRONMENT_VARIABLE))
django.core.exceptions.ImproperlyConfigured: Requested setting AWS_S3_FILE_BUFFER_SIZE, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings.

WARNING: autodoc: failed to import module 'views' from module 'building_data'; the following exception was raised:
Traceback (most recent call last):
  File "/Users/micromegas/miniconda3/envs/website/lib/python3.7/site-packages/sphinx/ext/autodoc/importer.py", line 32, in import_module
    return importlib.import_module(modname)
  File "/Users/micromegas/miniconda3/envs/website/lib/python3.7/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1006, in _gcd_import
  File "<frozen importlib._bootstrap>", line 983, in _find_and_load
  File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 677, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 728, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "/Users/micromegas/myprojectfolder/myproject/building_data/views.py", line 9, in <module>
    from .models import BuildingGroup
  File "/Users/micromegas/myprojectfolder/myproject/building_data/models.py", line 6, in <module>
    from simulation_api.models import Project
  File "/Users/micromegas/myprojectfolder/myproject/simulation_api/models.py", line 1, in <module>
    from config.settings.storage_backends import MediaStoragePrivate
  File "/Users/micromegas/myprojectfolder/myproject/config/settings/storage_backends.py", line 1, in <module>
    from storages.backends.s3boto3 import S3Boto3Storage
  File "/Users/micromegas/miniconda3/envs/website/lib/python3.7/site-packages/storages/backends/s3boto3.py", line 40, in <module>
    class S3Boto3StorageFile(File):
  File "/Users/micromegas/miniconda3/envs/website/lib/python3.7/site-packages/storages/backends/s3boto3.py", line 58, in S3Boto3StorageFile
    buffer_size = setting('AWS_S3_FILE_BUFFER_SIZE', 5242880)
  File "/Users/micromegas/miniconda3/envs/website/lib/python3.7/site-packages/storages/utils.py", line 21, in setting
    return getattr(settings, name, default)
  File "/Users/micromegas/miniconda3/envs/website/lib/python3.7/site-packages/django/conf/__init__.py", line 79, in __getattr__
    self._setup(name)
  File "/Users/micromegas/miniconda3/envs/website/lib/python3.7/site-packages/django/conf/__init__.py", line 64, in _setup
    % (desc, ENVIRONMENT_VARIABLE))
django.core.exceptions.ImproperlyConfigured: Requested setting AWS_S3_FILE_BUFFER_SIZE, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings.

WARNING: autodoc: failed to import module 'serializers' from module 'building_data.api'; the following exception was raised:
Traceback (most recent call last):
  File "/Users/micromegas/miniconda3/envs/website/lib/python3.7/site-packages/sphinx/ext/autodoc/importer.py", line 32, in import_module
    return importlib.import_module(modname)
  File "/Users/micromegas/miniconda3/envs/website/lib/python3.7/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1006, in _gcd_import
  File "<frozen importlib._bootstrap>", line 983, in _find_and_load
  File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 677, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 728, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "/Users/micromegas/myprojectfolder/myproject/building_data/api/serializers.py", line 2, in <module>
    from building_data.models import Building, BuildingGroup, TimeSeries
  File "/Users/micromegas/myprojectfolder/myproject/building_data/models.py", line 6, in <module>
    from simulation_api.models import Project
  File "/Users/micromegas/myprojectfolder/myproject/simulation_api/models.py", line 1, in <module>
    from config.settings.storage_backends import MediaStoragePrivate
  File "/Users/micromegas/myprojectfolder/myproject/config/settings/storage_backends.py", line 1, in <module>
    from storages.backends.s3boto3 import S3Boto3Storage
  File "/Users/micromegas/miniconda3/envs/website/lib/python3.7/site-packages/storages/backends/s3boto3.py", line 40, in <module>
    class S3Boto3StorageFile(File):
  File "/Users/micromegas/miniconda3/envs/website/lib/python3.7/site-packages/storages/backends/s3boto3.py", line 58, in S3Boto3StorageFile
    buffer_size = setting('AWS_S3_FILE_BUFFER_SIZE', 5242880)
  File "/Users/micromegas/miniconda3/envs/website/lib/python3.7/site-packages/storages/utils.py", line 21, in setting
    return getattr(settings, name, default)
  File "/Users/micromegas/miniconda3/envs/website/lib/python3.7/site-packages/django/conf/__init__.py", line 79, in __getattr__
    self._setup(name)
  File "/Users/micromegas/miniconda3/envs/website/lib/python3.7/site-packages/django/conf/__init__.py", line 64, in _setup
    % (desc, ENVIRONMENT_VARIABLE))
django.core.exceptions.ImproperlyConfigured: Requested setting AWS_S3_FILE_BUFFER_SIZE, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings.

WARNING: autodoc: failed to import module 'urls' from module 'building_data.api'; the following exception was raised:
No module named 'rest_framework_jwt'
WARNING: autodoc: failed to import module 'views' from module 'building_data.api'; the following exception was raised:
Traceback (most recent call last):
  File "/Users/micromegas/miniconda3/envs/website/lib/python3.7/site-packages/sphinx/ext/autodoc/importer.py", line 32, in import_module
    return importlib.import_module(modname)
  File "/Users/micromegas/miniconda3/envs/website/lib/python3.7/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1006, in _gcd_import
  File "<frozen importlib._bootstrap>", line 983, in _find_and_load
  File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 677, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 728, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "/Users/micromegas/myprojectfolder/myproject/building_data/api/views.py", line 1, in <module>
    from building_data.models import BuildingGroup, TimeSeries
  File "/Users/micromegas/myprojectfolder/myproject/building_data/models.py", line 6, in <module>
    from simulation_api.models import Project
  File "/Users/micromegas/myprojectfolder/myproject/simulation_api/models.py", line 1, in <module>
    from config.settings.storage_backends import MediaStoragePrivate
  File "/Users/micromegas/myprojectfolder/myproject/config/settings/storage_backends.py", line 1, in <module>
    from storages.backends.s3boto3 import S3Boto3Storage
  File "/Users/micromegas/miniconda3/envs/website/lib/python3.7/site-packages/storages/backends/s3boto3.py", line 40, in <module>
    class S3Boto3StorageFile(File):
  File "/Users/micromegas/miniconda3/envs/website/lib/python3.7/site-packages/storages/backends/s3boto3.py", line 58, in S3Boto3StorageFile
    buffer_size = setting('AWS_S3_FILE_BUFFER_SIZE', 5242880)
  File "/Users/micromegas/miniconda3/envs/website/lib/python3.7/site-packages/storages/utils.py", line 21, in setting
    return getattr(settings, name, default)
  File "/Users/micromegas/miniconda3/envs/website/lib/python3.7/site-packages/django/conf/__init__.py", line 79, in __getattr__
    self._setup(name)
  File "/Users/micromegas/miniconda3/envs/website/lib/python3.7/site-packages/django/conf/__init__.py", line 64, in _setup
    % (desc, ENVIRONMENT_VARIABLE))
django.core.exceptions.ImproperlyConfigured: Requested setting AWS_S3_FILE_BUFFER_SIZE, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings.

It does the same for my other modules too.

I guess it has something to do with my modules or the syspath but I don't know. Here are my sphinx conf:

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

extensions = [
    "sphinx.ext.autosummary",
    "sphinx.ext.autodoc",
    "sphinx.ext.coverage",
    "sphinx.ext.doctest",
    "sphinx.ext.napoleon",
]

When I print out sys.path.insert(0, os.path.abspath('..')) it says None.

The error changes to pure import errors when I set sys path to sys.path.insert(0, os.path.abspath('../../project_name/myapp'))

My folder structure:

myproject 
  - my app
  - docs
     - conf.py
     - Makefile
     - index.rst
       ...
  - envs
  - compose
  - ...

Can anyone help? Thanks so much in advance for any help!

Micromegas
  • 1,499
  • 2
  • 20
  • 49
  • 1
    The entry that you add to `sys.path` should be the path to the directory that contains the module/package to be documented. Is `../../project_name/myapp` that path? I can't tell if it is from the information you have given. – mzjn Nov 21 '19 at 16:48
  • thanks mzjn! When I specify ```sys.path.insert(0, os.path.abspath('../../myapp'))``` i get the path that you say should work. When I print it I get ```/Users/myuser/myproject/myprojectagain/myapp```. But it still tells me ```failed to import xyz no module named myapp.settings``` and some other dependencies – Micromegas Nov 21 '19 at 17:00
  • when I specify the settings with ```os.environ['DJANGO_SETTINGS_MODULE'] = 'myapp.config.settings.local'``` I get the error ```no module named myapp``` – Micromegas Nov 21 '19 at 17:02
  • could it be sth with the __init__.py file? All my folders contain one... – Micromegas Nov 21 '19 at 17:04
  • The `__init__.py` files are package markers: I don't think they are the problem (but it's hard to be sure). – mzjn Nov 22 '19 at 08:20
  • thanks for the feedback. The weird thing is that when I write a test script, add a module to my ```sys.path``` and then try to import it, it gives me import errors as well. (I explained it in more detail here: https://stackoverflow.com/questions/58990164/). So maybe it is a setup error in my python installation? Also don't really know how to debug further – Micromegas Nov 22 '19 at 08:33

0 Answers0