Sphinx: `brew install python` fails

Created on 24 Apr 2018  路  3Comments  路  Source: sphinx-doc/sphinx

Subject: brew install python fails to build sphinx 1.7.3 citing

AttributeError: 'DirectiveAdapter' object has no attribute 'env'

Problem

  • brew install python fails to build sphinx on mac.

Procedure to reproduce the problem

brew install python

Error logs / results

Traceback (most recent call last):
  File "/usr/local/Cellar/sphinx-doc/1.7.3/libexec/lib/python2.7/site-packages/sphinx/cmdline.py", line 304, in main
    app.build(args.force_all, filenames)
  File "/usr/local/Cellar/sphinx-doc/1.7.3/libexec/lib/python2.7/site-packages/sphinx/application.py", line 331, in build
    self.builder.build_update()
  File "/usr/local/Cellar/sphinx-doc/1.7.3/libexec/lib/python2.7/site-packages/sphinx/builders/__init__.py", line 338, in build_update
    'out of date' % len(to_build))
  File "/usr/local/Cellar/sphinx-doc/1.7.3/libexec/lib/python2.7/site-packages/sphinx/builders/__init__.py", line 351, in build
    updated_docnames = set(self.env.update(self.config, self.srcdir, self.doctreedir))
  File "/usr/local/Cellar/sphinx-doc/1.7.3/libexec/lib/python2.7/site-packages/sphinx/environment/__init__.py", line 565, in update
    self._read_serial(docnames, self.app)
  File "/usr/local/Cellar/sphinx-doc/1.7.3/libexec/lib/python2.7/site-packages/sphinx/environment/__init__.py", line 584, in _read_serial
    self.read_doc(docname, app)
  File "/usr/local/Cellar/sphinx-doc/1.7.3/libexec/lib/python2.7/site-packages/sphinx/environment/__init__.py", line 659, in read_doc
    doctree = read_doc(self.app, self, self.doc2path(docname))
  File "/usr/local/Cellar/sphinx-doc/1.7.3/libexec/lib/python2.7/site-packages/sphinx/io.py", line 294, in read_doc
    pub.publish()
  File "/usr/local/Cellar/sphinx-doc/1.7.3/libexec/vendor/lib/python2.7/site-packages/docutils/core.py", line 217, in publish
    self.settings)
  File "/usr/local/Cellar/sphinx-doc/1.7.3/libexec/vendor/lib/python2.7/site-packages/docutils/readers/__init__.py", line 72, in read
    self.parse()
  File "/usr/local/Cellar/sphinx-doc/1.7.3/libexec/vendor/lib/python2.7/site-packages/docutils/readers/__init__.py", line 78, in parse
    self.parser.parse(self.input, document)
  File "/usr/local/Cellar/sphinx-doc/1.7.3/libexec/lib/python2.7/site-packages/sphinx/parsers.py", line 85, in parse
    self.statemachine.run(inputstring, document, inliner=self.inliner)
  File "/usr/local/Cellar/sphinx-doc/1.7.3/libexec/vendor/lib/python2.7/site-packages/docutils/parsers/rst/states.py", line 171, in run
    input_source=document['source'])
  File "/usr/local/Cellar/sphinx-doc/1.7.3/libexec/vendor/lib/python2.7/site-packages/docutils/statemachine.py", line 239, in run
    context, state, transitions)
  File "/usr/local/Cellar/sphinx-doc/1.7.3/libexec/vendor/lib/python2.7/site-packages/docutils/statemachine.py", line 460, in check_line
    return method(match, context, next_state)
  File "/usr/local/Cellar/sphinx-doc/1.7.3/libexec/vendor/lib/python2.7/site-packages/docutils/parsers/rst/states.py", line 2753, in underline
    self.section(title, source, style, lineno - 1, messages)
  File "/usr/local/Cellar/sphinx-doc/1.7.3/libexec/vendor/lib/python2.7/site-packages/docutils/parsers/rst/states.py", line 327, in section
    self.new_subsection(title, lineno, messages)
  File "/usr/local/Cellar/sphinx-doc/1.7.3/libexec/vendor/lib/python2.7/site-packages/docutils/parsers/rst/states.py", line 395, in new_subsection
    node=section_node, match_titles=True)
  File "/usr/local/Cellar/sphinx-doc/1.7.3/libexec/vendor/lib/python2.7/site-packages/docutils/parsers/rst/states.py", line 282, in nested_parse
    node=node, match_titles=match_titles)
  File "/usr/local/Cellar/sphinx-doc/1.7.3/libexec/vendor/lib/python2.7/site-packages/docutils/parsers/rst/states.py", line 196, in run
    results = StateMachineWS.run(self, input_lines, input_offset)
  File "/usr/local/Cellar/sphinx-doc/1.7.3/libexec/vendor/lib/python2.7/site-packages/docutils/statemachine.py", line 239, in run
    context, state, transitions)
  File "/usr/local/Cellar/sphinx-doc/1.7.3/libexec/vendor/lib/python2.7/site-packages/docutils/statemachine.py", line 460, in check_line
    return method(match, context, next_state)
  File "/usr/local/Cellar/sphinx-doc/1.7.3/libexec/vendor/lib/python2.7/site-packages/docutils/parsers/rst/states.py", line 2326, in explicit_markup
    nodelist, blank_finish = self.explicit_construct(match)
  File "/usr/local/Cellar/sphinx-doc/1.7.3/libexec/vendor/lib/python2.7/site-packages/docutils/parsers/rst/states.py", line 2338, in explicit_construct
    return method(self, expmatch)
  File "/usr/local/Cellar/sphinx-doc/1.7.3/libexec/vendor/lib/python2.7/site-packages/docutils/parsers/rst/states.py", line 2081, in directive
    directive_class, match, type_name, option_presets)
  File "/usr/local/Cellar/sphinx-doc/1.7.3/libexec/vendor/lib/python2.7/site-packages/docutils/parsers/rst/states.py", line 2130, in run_directive
    result = directive_instance.run()
  File "/usr/local/Cellar/sphinx-doc/1.7.3/libexec/lib/python2.7/site-packages/sphinx/domains/__init__.py", line 237, in run
    return BaseDirective.run(self)
  File "/usr/local/Cellar/sphinx-doc/1.7.3/libexec/lib/python2.7/site-packages/sphinx/domains/python.py", line 568, in run
    (modname, self.env.doc2path(modules[modname])),
AttributeError: 'DirectiveAdapter' object has no attribute 'env'

Expected results

It should let me install python

Environment info

  • OS: Mac - Darwin 17.5.0 Darwin Kernel Version 17.5.0: Mon Mar 5 22:24:32 PST 2018; root:xnu-4570.51.1~1/RELEASE_X86_64 x86_64

  • Python version: 2.7.14

  • Sphinx version: 1.7.3
  • brew install python
bug py duplicate

Most helpful comment

Anyone looking for a quick fix - I was able to get brew back on track by editing line 568 of /usr/local/Cellar/sphinx-doc/1.7.3/libexec/lib/python2.7/site-packages/sphinx/domains/python.py

(modname, modules[modname]), #self.env.doc2path(modules[modname])),

All 3 comments

Anyone looking for a quick fix - I was able to get brew back on track by editing line 568 of /usr/local/Cellar/sphinx-doc/1.7.3/libexec/lib/python2.7/site-packages/sphinx/domains/python.py

(modname, modules[modname]), #self.env.doc2path(modules[modname])),

This is fixed in #4887 and will be released in the next bugfix release.

Thank you @lucasvo I agree. Static types might be useful for such a big and important project. I hope sphinx will consider using mypy to avoid these issues.

http://mypy-lang.blogspot.com/2017/11/dropbox-releases-pyannotate-auto.html

Was this page helpful?
0 / 5 - 0 ratings