Read the Docs build information Build id: 140058 Project: icb-anndata Version: stable Commit: db905235cfb2d2335ef76df2eba18bfd420c0794 Date: 2018-09-05T14:38:35.656061Z State: finished Success: False [rtd-command-info] start-time: 2018-09-05T19:39:07.321471Z, end-time: 2018-09-05T19:39:07.688909Z, duration: 0, exit-code: 0 git clone --recursive https://github.com/theislab/anndata.git . Cloning into '.'... [rtd-command-info] start-time: 2018-09-05T19:39:07.747780Z, end-time: 2018-09-05T19:39:07.763495Z, duration: 0, exit-code: 0 git checkout --force db905235cfb2d2335ef76df2eba18bfd420c0794 Note: checking out 'db905235cfb2d2335ef76df2eba18bfd420c0794'. You are in 'detached HEAD' state. You can look around, make experimental changes and commit them, and you can discard any commits you make in this state without impacting any branches by performing another checkout. If you want to create a new branch to retain commits you create, you may do so (now or later) by using -b with the checkout command again. Example: git checkout -b HEAD is now at db90523... update write_loom to write layers (#53) [rtd-command-info] start-time: 2018-09-05T19:39:07.823515Z, end-time: 2018-09-05T19:39:07.834724Z, duration: 0, exit-code: 0 git clean -d -f -f [rtd-command-info] start-time: 2018-09-05T19:39:07.951361Z, end-time: 2018-09-05T19:39:07.961478Z, duration: 0, exit-code: 0 git branch -r origin/2d origin/HEAD -> origin/master origin/backed origin/logging origin/master [rtd-command-info] start-time: 2018-09-05T19:39:08.592916Z, end-time: 2018-09-05T19:39:11.374915Z, duration: 2, exit-code: 0 python3.6 -mvirtualenv --no-site-packages --no-download Using base prefix '/home/docs/.pyenv/versions/3.6.2' New python executable in /home/docs/checkouts/readthedocs.org/user_builds/icb-anndata/envs/stable/bin/python3.6 Also creating executable in /home/docs/checkouts/readthedocs.org/user_builds/icb-anndata/envs/stable/bin/python Installing setuptools, pip, wheel...done. [rtd-command-info] start-time: 2018-09-05T19:39:11.434713Z, end-time: 2018-09-05T19:39:19.079175Z, duration: 7, exit-code: 0 python pip install --upgrade --cache-dir /home/docs/checkouts/readthedocs.org/user_builds/icb-anndata/.cache/pip Pygments==2.2.0 setuptools<40 docutils==0.13.1 mock==1.0.1 pillow==2.6.1 alabaster>=0.7,<0.8,!=0.7.5 commonmark==0.5.4 recommonmark==0.4.0 sphinx<1.8 sphinx-rtd-theme<0.5 readthedocs-sphinx-ext<0.6 Collecting Pygments==2.2.0 Using cached https://files.pythonhosted.org/packages/02/ee/b6e02dc6529e82b75bb06823ff7d005b141037cb1416b10c6f00fc419dca/Pygments-2.2.0-py2.py3-none-any.whl Collecting setuptools<40 Using cached https://files.pythonhosted.org/packages/7f/e1/820d941153923aac1d49d7fc37e17b6e73bfbd2904959fffbad77900cf92/setuptools-39.2.0-py2.py3-none-any.whl Collecting docutils==0.13.1 Using cached https://files.pythonhosted.org/packages/7c/30/8fb30d820c012a6f701a66618ce065b6d61d08ac0a77e47fc7808dbaee47/docutils-0.13.1-py3-none-any.whl Collecting mock==1.0.1 Collecting pillow==2.6.1 Collecting alabaster!=0.7.5,<0.8,>=0.7 Using cached https://files.pythonhosted.org/packages/6e/71/c3648cc2f675063dbe2d669004a59e4a5120172713a1de3c3b14144d4b31/alabaster-0.7.11-py2.py3-none-any.whl Collecting commonmark==0.5.4 Collecting recommonmark==0.4.0 Using cached https://files.pythonhosted.org/packages/df/a5/8ee4b84af7f997dfdba71254a88008cfc19c49df98983c9a4919e798f8ce/recommonmark-0.4.0-py2.py3-none-any.whl Collecting sphinx<1.8 Using cached https://files.pythonhosted.org/packages/90/f9/a0babe32c78480994e4f1b93315558f5ed756104054a7029c672a8d77b72/Sphinx-1.7.9-py2.py3-none-any.whl Collecting sphinx-rtd-theme<0.5 Using cached https://files.pythonhosted.org/packages/87/30/7460f7b77b6e8a080dd3688f750fe5d5666c49358f8941449c5b128fa97d/sphinx_rtd_theme-0.4.1-py2.py3-none-any.whl Collecting readthedocs-sphinx-ext<0.6 Using cached https://files.pythonhosted.org/packages/54/7a/26d18b225af6041f99457c002d3f27485732864ac984d3c4c56f27d73ef1/readthedocs_sphinx_ext-0.5.14-py2.py3-none-any.whl Collecting packaging (from sphinx<1.8) Using cached https://files.pythonhosted.org/packages/ad/c2/b500ea05d5f9f361a562f089fc91f77ed3b4783e13a08a3daf82069b1224/packaging-17.1-py2.py3-none-any.whl Collecting babel!=2.0,>=1.3 (from sphinx<1.8) Using cached https://files.pythonhosted.org/packages/b8/ad/c6f60602d3ee3d92fbed87675b6fb6a6f9a38c223343ababdb44ba201f10/Babel-2.6.0-py2.py3-none-any.whl Collecting sphinxcontrib-websupport (from sphinx<1.8) Using cached https://files.pythonhosted.org/packages/52/69/3c2fbdc3702358c5b34ee25e387b24838597ef099761fc9a42c166796e8f/sphinxcontrib_websupport-1.1.0-py2.py3-none-any.whl Collecting imagesize (from sphinx<1.8) Using cached https://files.pythonhosted.org/packages/fc/b6/aef66b4c52a6ad6ac18cf6ebc5731ed06d8c9ae4d3b2d9951f261150be67/imagesize-1.1.0-py2.py3-none-any.whl Collecting Jinja2>=2.3 (from sphinx<1.8) Using cached https://files.pythonhosted.org/packages/7f/ff/ae64bacdfc95f27a016a7bed8e8686763ba4d277a78ca76f32659220a731/Jinja2-2.10-py2.py3-none-any.whl Collecting six>=1.5 (from sphinx<1.8) Using cached https://files.pythonhosted.org/packages/67/4b/141a581104b1f6397bfa78ac9d43d8ad29a7ca43ea90a2d863fe3056e86a/six-1.11.0-py2.py3-none-any.whl Collecting snowballstemmer>=1.1 (from sphinx<1.8) Using cached https://files.pythonhosted.org/packages/d4/6c/8a935e2c7b54a37714656d753e4187ee0631988184ed50c0cf6476858566/snowballstemmer-1.2.1-py2.py3-none-any.whl Collecting requests>=2.0.0 (from sphinx<1.8) Using cached https://files.pythonhosted.org/packages/65/47/7e02164a2a3db50ed6d8a6ab1d6d60b69c4c3fdf57a284257925dfc12bda/requests-2.19.1-py2.py3-none-any.whl Collecting pyparsing>=2.0.2 (from packaging->sphinx<1.8) Using cached https://files.pythonhosted.org/packages/6a/8a/718fd7d3458f9fab8e67186b00abdd345b639976bc7fb3ae722e1b026a50/pyparsing-2.2.0-py2.py3-none-any.whl Collecting pytz>=0a (from babel!=2.0,>=1.3->sphinx<1.8) Using cached https://files.pythonhosted.org/packages/30/4e/27c34b62430286c6d59177a0842ed90dc789ce5d1ed740887653b898779a/pytz-2018.5-py2.py3-none-any.whl Collecting MarkupSafe>=0.23 (from Jinja2>=2.3->sphinx<1.8) Collecting idna<2.8,>=2.5 (from requests>=2.0.0->sphinx<1.8) Using cached https://files.pythonhosted.org/packages/4b/2a/0276479a4b3caeb8a8c1af2f8e4355746a97fab05a372e4a2c6a6b876165/idna-2.7-py2.py3-none-any.whl Collecting chardet<3.1.0,>=3.0.2 (from requests>=2.0.0->sphinx<1.8) Using cached https://files.pythonhosted.org/packages/bc/a9/01ffebfb562e4274b6487b4bb1ddec7ca55ec7510b22e4c51f14098443b8/chardet-3.0.4-py2.py3-none-any.whl Collecting certifi>=2017.4.17 (from requests>=2.0.0->sphinx<1.8) Using cached https://files.pythonhosted.org/packages/df/f7/04fee6ac349e915b82171f8e23cee63644d83663b34c539f7a09aed18f9e/certifi-2018.8.24-py2.py3-none-any.whl Collecting urllib3<1.24,>=1.21.1 (from requests>=2.0.0->sphinx<1.8) Using cached https://files.pythonhosted.org/packages/bd/c9/6fdd990019071a4a32a5e7cb78a1d92c53851ef4f56f62a3486e6a7d8ffb/urllib3-1.23-py2.py3-none-any.whl Installing collected packages: Pygments, setuptools, docutils, mock, pillow, alabaster, commonmark, recommonmark, six, pyparsing, packaging, pytz, babel, sphinxcontrib-websupport, imagesize, MarkupSafe, Jinja2, snowballstemmer, idna, chardet, certifi, urllib3, requests, sphinx, sphinx-rtd-theme, readthedocs-sphinx-ext Found existing installation: setuptools 39.0.1 Uninstalling setuptools-39.0.1: Successfully uninstalled setuptools-39.0.1 Successfully installed Jinja2-2.10 MarkupSafe-1.0 Pygments-2.2.0 alabaster-0.7.11 babel-2.6.0 certifi-2018.8.24 chardet-3.0.4 commonmark-0.5.4 docutils-0.13.1 idna-2.7 imagesize-1.1.0 mock-1.0.1 packaging-17.1 pillow-2.6.1 pyparsing-2.2.0 pytz-2018.5 readthedocs-sphinx-ext-0.5.14 recommonmark-0.4.0 requests-2.19.1 setuptools-39.2.0 six-1.11.0 snowballstemmer-1.2.1 sphinx-1.7.9 sphinx-rtd-theme-0.4.1 sphinxcontrib-websupport-1.1.0 urllib3-1.23 You are using pip version 9.0.3, however version 18.0 is available. You should consider upgrading via the 'pip install --upgrade pip' command. [rtd-command-info] start-time: 2018-09-05T19:39:19.521524Z, end-time: 2018-09-05T19:39:19.595699Z, duration: 0, exit-code: 0 cat docs/conf.py import os import sys import time import inspect from pathlib import Path, PurePosixPath import logging HERE = Path(__file__).parent sys.path.insert(0, str(HERE / '..')) import anndata logger = logging.getLogger(__name__) for generated in HERE.glob('anndata.*.rst'): generated.unlink() # -- General configuration ------------------------------------------------ # If your documentation needs a minimal Sphinx version, state it here. # # needs_sphinx = '1.0' # Add any Sphinx extension module names here, as strings. They can be # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom # ones. extensions = [ 'sphinx.ext.autodoc', 'sphinx.ext.intersphinx', 'sphinx.ext.doctest', 'sphinx.ext.coverage', 'sphinx.ext.mathjax', 'sphinx.ext.napoleon', 'sphinx.ext.autosummary', # 'plot_generator', # 'plot_directive', 'sphinx_autodoc_typehints', # needs to be after napoleon # 'ipython_directive', # 'ipython_console_highlighting', ] # Generate the API documentation when building autosummary_generate = True autodoc_mock_imports = ['_tkinter'] # why this? autodoc_member_order = 'bysource' #autodoc_default_flags = ['members'] napoleon_use_param = True intersphinx_mapping = dict( python=('https://docs.python.org/3', None), h5py=('http://docs.h5py.org/en/latest/', None) ) templates_path = ['_templates'] source_suffix = '.rst' master_doc = 'index' project = 'anndata' copyright = '{}, Alex Wolf, Philipp Angerer, Sergei Rybakov'.format(time.strftime("%Y")) author = 'Alex Wolf, Philipp Angerer, Sergei Rybakov' version = anndata.__version__.replace('.dirty', '') release = version exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store'] pygments_style = 'sphinx' todo_include_todos = False # -- Options for HTML output ---------------------------------------------- html_theme = 'sphinx_rtd_theme' html_theme_options = { 'navigation_depth': 2, } html_context = { 'display_github': True, # Integrate GitHub 'github_user': 'theislab', # Username 'github_repo': 'anndata', # Repo name 'github_version': 'master', # Version 'conf_py_path': '/docs/', # Path in the checkout to the docs root 'css_files': [ # Additional CSS '_static/css/override.css', ], } if 'READTHEDOCS' in os.environ: # For some reason, RTD doesn’t insert their stuff anymore once we add custom CSS files. html_context['css_files'].insert(0, 'https://media.readthedocs.org/css/sphinx_rtd_theme.css') html_static_path = ['_static'] # -- Options for HTMLHelp output ------------------------------------------ # Output file base name for HTML help builder. htmlhelp_basename = 'anndatadoc' # -- Options for LaTeX output --------------------------------------------- latex_elements = { # The paper size ('letterpaper' or 'a4paper'). # # 'papersize': 'letterpaper', # The font size ('10pt', '11pt' or '12pt'). # # 'pointsize': '10pt', # Additional stuff for the LaTeX preamble. # # 'preamble': '', # Latex figure (float) alignment # # 'figure_align': 'htbp', } # Grouping the document tree into LaTeX files. List of tuples # (source start file, target name, title, # author, documentclass [howto, manual, or own class]). latex_documents = [ (master_doc, 'anndata.tex', 'anndata Documentation', 'Alex Wolf, Philipp Angerer', 'manual'), ] # -- Options for manual page output --------------------------------------- # One entry per manual page. List of tuples # (source start file, name, description, authors, manual section). man_pages = [ (master_doc, 'anndata', 'anndata Documentation', [author], 1) ] # -- Options for Texinfo output ------------------------------------------- # Grouping the document tree into Texinfo files. List of tuples # (source start file, target name, title, author, # dir menu entry, description, category) texinfo_documents = [ (master_doc, 'anndata', 'anndata Documentation', author, 'anndata', 'One line description of project.', 'Miscellaneous'), ] # -- GitHub links --------------------------------------------------------- def get_obj_module(qualname): """Get a module/class/attribute and its original module by qualname""" modname = qualname classname = None attrname = None while modname not in sys.modules: attrname = classname modname, classname = modname.rsplit('.', 1) # retrieve object and find original module name if classname: cls = getattr(sys.modules[modname], classname) modname = cls.__module__ obj = getattr(cls, attrname) if attrname else cls else: obj = None return obj, sys.modules[modname] def get_linenos(obj): """Get an object’s line numbers""" try: lines, start = inspect.getsourcelines(obj) except TypeError: return None, None else: return start, start + len(lines) - 1 project_dir = Path(__file__).parent.parent # project/docs/conf.py/../.. → project/ github_url1 = 'https://github.com/{github_user}/{github_repo}/tree/{github_version}'.format_map(html_context) github_url2 = 'https://github.com/theislab/anndata/tree/master' def modurl(qualname): """Get the full GitHub URL for some object’s qualname.""" obj, module = get_obj_module(qualname) github_url = github_url1 try: path = PurePosixPath(Path(module.__file__).resolve().relative_to(project_dir)) except ValueError: # trying to document something from another package github_url = github_url2 path = '/'.join(module.__file__.split('/')[-2:]) start, end = get_linenos(obj) fragment = '#L{}-L{}'.format(start, end) if start and end else '' return '{}/{}{}'.format(github_url, path, fragment) # html_context doesn’t apply to autosummary templates ☹ # and there’s no way to insert filters into those templates # so we have to modify the default filters from jinja2.defaults import DEFAULT_FILTERS DEFAULT_FILTERS['modurl'] = modurl # -- Prettier Param docs -------------------------------------------- from typing import Dict, List, Tuple from docutils import nodes from sphinx import addnodes from sphinx.domains.python import PyTypedField, PyObject from sphinx.environment import BuildEnvironment class PrettyTypedField(PyTypedField): list_type = nodes.definition_list def make_field( self, types: Dict[str, List[nodes.Node]], domain: str, items: Tuple[str, List[nodes.inline]], env: BuildEnvironment = None ) -> nodes.field: def makerefs(rolename, name, node): return self.make_xrefs(rolename, domain, name, node, env=env) def handle_item(fieldarg: str, content: List[nodes.inline]) -> nodes.definition_list_item: head = nodes.term() head += makerefs(self.rolename, fieldarg, addnodes.literal_strong) fieldtype = types.pop(fieldarg, None) if fieldtype is not None: head += nodes.Text(' : ') if len(fieldtype) == 1 and isinstance(fieldtype[0], nodes.Text): typename = ''.join(n.astext() for n in fieldtype) head += makerefs(self.typerolename, typename, addnodes.literal_emphasis) else: head += fieldtype body_content = nodes.paragraph('', '', *content) body = nodes.definition('', body_content) return nodes.definition_list_item('', head, body) fieldname = nodes.field_name('', self.label) if len(items) == 1 and self.can_collapse: fieldarg, content = items[0] bodynode = handle_item(fieldarg, content) else: bodynode = self.list_type() for fieldarg, content in items: bodynode += handle_item(fieldarg, content) fieldbody = nodes.field_body('', bodynode) return nodes.field('', fieldname, fieldbody) # replace matching field types with ours PyObject.doc_field_types = [ PrettyTypedField( ft.name, names=ft.names, typenames=ft.typenames, label=ft.label, rolename=ft.rolename, typerolename=ft.typerolename, can_collapse=ft.can_collapse, ) if isinstance(ft, PyTypedField) else ft for ft in PyObject.doc_field_types ] ########################################################################### # auto-created readthedocs.org specific configuration # ########################################################################### # # The following code was added during an automated build on readthedocs.org # It is auto created and injected for every build. The result is based on the # conf.py.tmpl file found in the readthedocs.org codebase: # https://github.com/rtfd/readthedocs.org/blob/master/readthedocs/doc_builder/templates/doc_builder/conf.py.tmpl # import sys import os.path from six import string_types from sphinx import version_info # Get suffix for proper linking to GitHub # This is deprecated in Sphinx 1.3+, # as each page can have its own suffix if globals().get('source_suffix', False): if isinstance(source_suffix, string_types): SUFFIX = source_suffix else: SUFFIX = source_suffix[0] else: SUFFIX = '.rst' # Add RTD Static Path. Add to the end because it overwrites previous files. if not 'html_static_path' in globals(): html_static_path = [] if os.path.exists('_static'): html_static_path.append('_static') html_static_path.append('/home/docs/checkouts/readthedocs.org/readthedocs/templates/sphinx/_static') # Add RTD Theme only if they aren't overriding it already using_rtd_theme = False if 'html_theme' in globals(): if html_theme in ['default']: # Allow people to bail with a hack of having an html_style if not 'html_style' in globals(): import sphinx_rtd_theme html_theme = 'sphinx_rtd_theme' html_style = None html_theme_options = {} if 'html_theme_path' in globals(): html_theme_path.append(sphinx_rtd_theme.get_html_theme_path()) else: html_theme_path = [sphinx_rtd_theme.get_html_theme_path()] using_rtd_theme = True else: import sphinx_rtd_theme html_theme = 'sphinx_rtd_theme' html_style = None html_theme_options = {} if 'html_theme_path' in globals(): html_theme_path.append(sphinx_rtd_theme.get_html_theme_path()) else: html_theme_path = [sphinx_rtd_theme.get_html_theme_path()] using_rtd_theme = True if globals().get('websupport2_base_url', False): websupport2_base_url = 'https://readthedocs.com/websupport' if 'http' not in settings.MEDIA_URL: websupport2_static_url = 'https://media.readthedocs.com/' else: websupport2_static_url = 'https://media.readthedocs.com/media//static' #Add project information to the template context. context = { 'using_theme': using_rtd_theme, 'html_theme': html_theme, 'current_version': "stable", 'version_slug': "stable", 'MEDIA_URL': "https://media.readthedocs.com/media/", 'PRODUCTION_DOMAIN': "readthedocs.com", 'versions': [ ("latest", "/en/latest/"), ("stable", "/en/stable/"), ], 'downloads': [ ], 'subprojects': [ ], 'slug': 'icb-anndata', 'name': u'anndata', 'rtd_language': u'en', 'programming_language': u'py', 'canonical_url': 'https://icb-anndata.readthedocs-hosted.com/en/latest/', 'analytics_code': 'None', 'single_version': False, 'conf_py_path': '/docs/', 'api_host': 'https://readthedocs.com', 'github_user': 'theislab', 'github_repo': 'anndata', 'github_version': 'db905235cfb2d2335ef76df2eba18bfd420c0794', 'display_github': True, 'bitbucket_user': 'None', 'bitbucket_repo': 'None', 'bitbucket_version': 'db905235cfb2d2335ef76df2eba18bfd420c0794', 'display_bitbucket': False, 'gitlab_user': 'None', 'gitlab_repo': 'None', 'gitlab_version': 'db905235cfb2d2335ef76df2eba18bfd420c0794', 'display_gitlab': False, 'READTHEDOCS': True, 'using_theme': (html_theme == "default"), 'new_theme': (html_theme == "sphinx_rtd_theme"), 'source_suffix': SUFFIX, 'user_analytics_code': '', 'global_analytics_code': 'UA-17997319-2', 'commit': 'db905235', } if 'html_context' in globals(): html_context.update(context) else: html_context = context # Add custom RTD extension if 'extensions' in globals(): # Insert at the beginning because it can interfere # with other extensions. # See https://github.com/rtfd/readthedocs.org/pull/4054 extensions.insert(0, "readthedocs_ext.readthedocs") else: extensions = ["readthedocs_ext.readthedocs"] # Build the json artifacts with the html build step rtd_generate_json_artifacts = True [rtd-command-info] start-time: 2018-09-05T19:39:19.658671Z, end-time: 2018-09-05T19:39:20.148666Z, duration: 0, exit-code: 2 python sphinx-build -T -b readthedocs -d _build/doctrees-readthedocs -D language=en . _build/html Running Sphinx v1.7.9 Traceback (most recent call last): File "/home/docs/checkouts/readthedocs.org/user_builds/icb-anndata/envs/stable/lib/python3.6/site-packages/sphinx/config.py", line 161, in __init__ execfile_(filename, config) File "/home/docs/checkouts/readthedocs.org/user_builds/icb-anndata/envs/stable/lib/python3.6/site-packages/sphinx/util/pycompat.py", line 150, in execfile_ exec_(code, _globals) File "conf.py", line 11, in import anndata File "/home/docs/checkouts/readthedocs.org/user_builds/icb-anndata/checkouts/stable/docs/../anndata/__init__.py", line 1, in from .base import AnnData, _MAIN_NARRATIVE File "/home/docs/checkouts/readthedocs.org/user_builds/icb-anndata/checkouts/stable/docs/../anndata/base.py", line 13, in import numpy as np ModuleNotFoundError: No module named 'numpy' During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/home/docs/checkouts/readthedocs.org/user_builds/icb-anndata/envs/stable/lib/python3.6/site-packages/sphinx/cmdline.py", line 303, in main args.warningiserror, args.tags, args.verbosity, args.jobs) File "/home/docs/checkouts/readthedocs.org/user_builds/icb-anndata/envs/stable/lib/python3.6/site-packages/sphinx/application.py", line 163, in __init__ confoverrides or {}, self.tags) File "/home/docs/checkouts/readthedocs.org/user_builds/icb-anndata/envs/stable/lib/python3.6/site-packages/sphinx/config.py", line 167, in __init__ raise ConfigError(CONFIG_ERROR % traceback.format_exc()) sphinx.errors.ConfigError: There is a programable error in your configuration file: Traceback (most recent call last): File "/home/docs/checkouts/readthedocs.org/user_builds/icb-anndata/envs/stable/lib/python3.6/site-packages/sphinx/config.py", line 161, in __init__ execfile_(filename, config) File "/home/docs/checkouts/readthedocs.org/user_builds/icb-anndata/envs/stable/lib/python3.6/site-packages/sphinx/util/pycompat.py", line 150, in execfile_ exec_(code, _globals) File "conf.py", line 11, in import anndata File "/home/docs/checkouts/readthedocs.org/user_builds/icb-anndata/checkouts/stable/docs/../anndata/__init__.py", line 1, in from .base import AnnData, _MAIN_NARRATIVE File "/home/docs/checkouts/readthedocs.org/user_builds/icb-anndata/checkouts/stable/docs/../anndata/base.py", line 13, in import numpy as np ModuleNotFoundError: No module named 'numpy' Configuration error: There is a programable error in your configuration file: Traceback (most recent call last): File "/home/docs/checkouts/readthedocs.org/user_builds/icb-anndata/envs/stable/lib/python3.6/site-packages/sphinx/config.py", line 161, in __init__ execfile_(filename, config) File "/home/docs/checkouts/readthedocs.org/user_builds/icb-anndata/envs/stable/lib/python3.6/site-packages/sphinx/util/pycompat.py", line 150, in execfile_ exec_(code, _globals) File "conf.py", line 11, in import anndata File "/home/docs/checkouts/readthedocs.org/user_builds/icb-anndata/checkouts/stable/docs/../anndata/__init__.py", line 1, in from .base import AnnData, _MAIN_NARRATIVE File "/home/docs/checkouts/readthedocs.org/user_builds/icb-anndata/checkouts/stable/docs/../anndata/base.py", line 13, in import numpy as np ModuleNotFoundError: No module named 'numpy'