Adding missing sphinx dependencies to build the documentation
State: closed

Seems like the documentation fails to build in a clean environement (with `make.py html`) because sphinx and its sphinx ipython directive have some dependencies that are not in the dev requirements. These dependencies are.
* ipython
* nbsphinx
* matplotlib

Next are the crashes:

```
Traceback (most recent call last):
  File "/home/mgarcia/.anaconda3/envs/pandas_dev/lib/python3.6/site-packages/sphinx/registry.py", line 196, in load_extension
    mod = __import__(extname, None, None, ['setup'])
  File "/home/mgarcia/src/forks/pandas/doc/sphinxext/ipython_sphinxext/ipython_directive.py", line 133, in <module>
    from IPython import Config
ModuleNotFoundError: No module named 'IPython'
```

```
Traceback (most recent call last):
  File "/home/mgarcia/.anaconda3/envs/pandas_dev/lib/python3.6/site-packages/sphinx/registry.py", line 196, in load_extension
    mod = __import__(extname, None, None, ['setup'])
ModuleNotFoundError: No module named 'nbsphinx'
```

```
Traceback (most recent call last):
  File "/home/mgarcia/.anaconda3/envs/pandas_dev2/lib/python3.6/site-packages/sphinx/cmdline.py", line 306, in main
    app.build(opts.force_all, filenames)
  File "/home/mgarcia/.anaconda3/envs/pandas_dev2/lib/python3.6/site-packages/sphinx/application.py", line 339, in build
    self.builder.build_update()
  File "/home/mgarcia/.anaconda3/envs/pandas_dev2/lib/python3.6/site-packages/sphinx/builders/__init__.py", line 329, in build_update
    'out of date' % len(to_build))
  File "/home/mgarcia/.anaconda3/envs/pandas_dev2/lib/python3.6/site-packages/sphinx/builders/__init__.py", line 342, in build
    updated_docnames = set(self.env.update(self.config, self.srcdir, self.doctreedir))
  File "/home/mgarcia/.anaconda3/envs/pandas_dev2/lib/python3.6/site-packages/sphinx/environment/__init__.py", line 601, in update
    self._read_serial(docnames, self.app)
  File "/home/mgarcia/.anaconda3/envs/pandas_dev2/lib/python3.6/site-packages/sphinx/environment/__init__.py", line 621, in _read_serial
    self.read_doc(docname, app)
  File "/home/mgarcia/.anaconda3/envs/pandas_dev2/lib/python3.6/site-packages/sphinx/environment/__init__.py", line 758, in read_doc
    pub.publish()
  File "/home/mgarcia/.anaconda3/envs/pandas_dev2/lib/python3.6/site-packages/docutils/core.py", line 217, in publish
    self.settings)
  File "/home/mgarcia/.anaconda3/envs/pandas_dev2/lib/python3.6/site-packages/sphinx/io.py", line 74, in read
    self.parse()
  File "/home/mgarcia/.anaconda3/envs/pandas_dev2/lib/python3.6/site-packages/docutils/readers/__init__.py", line 78, in parse
    self.parser.parse(self.input, document)
  File "/home/mgarcia/.anaconda3/envs/pandas_dev2/lib/python3.6/site-packages/docutils/parsers/rst/__init__.py", line 191, in parse
    self.statemachine.run(inputlines, document, inliner=self.inliner)
  File "/home/mgarcia/.anaconda3/envs/pandas_dev2/lib/python3.6/site-packages/docutils/parsers/rst/states.py", line 171, in run
    input_source=document['source'])
  File "/home/mgarcia/.anaconda3/envs/pandas_dev2/lib/python3.6/site-packages/docutils/statemachine.py", line 239, in run
    context, state, transitions)
  File "/home/mgarcia/.anaconda3/envs/pandas_dev2/lib/python3.6/site-packages/docutils/statemachine.py", line 460, in check_line
    return method(match, context, next_state)
  File "/home/mgarcia/.anaconda3/envs/pandas_dev2/lib/python3.6/site-packages/docutils/parsers/rst/states.py", line 2328, in explicit_markup
    self.explicit_list(blank_finish)
  File "/home/mgarcia/.anaconda3/envs/pandas_dev2/lib/python3.6/site-packages/docutils/parsers/rst/states.py", line 2358, in explicit_list
    match_titles=self.state_machine.match_titles)
  File "/home/mgarcia/.anaconda3/envs/pandas_dev2/lib/python3.6/site-packages/docutils/parsers/rst/states.py", line 319, in nested_list_parse
    node=node, match_titles=match_titles)
  File "/home/mgarcia/.anaconda3/envs/pandas_dev2/lib/python3.6/site-packages/docutils/parsers/rst/states.py", line 196, in run
    results = StateMachineWS.run(self, input_lines, input_offset)
  File "/home/mgarcia/.anaconda3/envs/pandas_dev2/lib/python3.6/site-packages/docutils/statemachine.py", line 239, in run
    context, state, transitions)
  File "/home/mgarcia/.anaconda3/envs/pandas_dev2/lib/python3.6/site-packages/docutils/statemachine.py", line 460, in check_line
    return method(match, context, next_state)
  File "/home/mgarcia/.anaconda3/envs/pandas_dev2/lib/python3.6/site-packages/docutils/parsers/rst/states.py", line 2631, in explicit_markup
    nodelist, blank_finish = self.explicit_construct(match)
  File "/home/mgarcia/.anaconda3/envs/pandas_dev2/lib/python3.6/site-packages/docutils/parsers/rst/states.py", line 2338, in explicit_construct
    return method(self, expmatch)
  File "/home/mgarcia/.anaconda3/envs/pandas_dev2/lib/python3.6/site-packages/docutils/parsers/rst/states.py", line 2081, in directive
    directive_class, match, type_name, option_presets)
  File "/home/mgarcia/.anaconda3/envs/pandas_dev2/lib/python3.6/site-packages/docutils/parsers/rst/states.py", line 2130, in run_directive
    result = directive_instance.run()
  File "/home/mgarcia/src/forks/pandas/doc/sphinxext/ipython_sphinxext/ipython_directive.py", line 840, in run
    rgxin, rgxout, promptin, promptout = self.setup()
  File "/home/mgarcia/src/forks/pandas/doc/sphinxext/ipython_sphinxext/ipython_directive.py", line 788, in setup
    import matplotlib
ModuleNotFoundError: No module named 'matplotlib'

```

Labels:

Comments:
these are already in the optional deps which are needed in order to build the documentation 
i suppose this could be more clear in the contributing guide

Oh, I didn't know the optional deps were needed for the documentation, I thought with the dev requirements was enough. Closing the PR. Thanks for the info.