sphinxcontrib-versioning icon indicating copy to clipboard operation
sphinxcontrib-versioning copied to clipboard

ImportError: cannot import name 'build_main'

Open super-sk opened this issue 5 years ago • 10 comments

Using :

  • sphinx-2.2.0
  • sphinxcontrib-versioning-2.2.1

While running any sphinxcontrib-versioning command, I got :

$ sphinx-versioning build --help

...
File "~/.virtualenvs/docs-temp/lib/python3.6/site-packages/sphinxcontrib/versioning/sphinx_.py", line 9, in <module>
    from sphinx import application, build_main, locale
ImportError: cannot import name 'build_main'

It seems like a wrong module call because build_main is not in sphinx package but it can be called from module sphinx.cmd.build.

Indeed, when I manually modify as below :

# versioning/sphinx_.py

from sphinx import build_main              # old line
from sphinx.cmd.build import build_main    # new line

everything seems to go well.

super-sk avatar Sep 16 '19 17:09 super-sk

Fixed here https://github.com/sphinx-contrib/sphinxcontrib-versioning/pull/69

But it seems CI-process is kind of broken.

z00sts avatar Oct 07 '19 11:10 z00sts

The workaround is working, changing from sphinx import build_main to from sphinx.cmd.build import build_main. Should I close the issue right now ?

super-sk avatar Oct 17 '19 22:10 super-sk

@super-sk I don't think so. My PR is still on code review stage, there are some issues with CI-process. Its will be better to keep issue opened

z00sts avatar Oct 18 '19 05:10 z00sts

Any progress on this one?

gryphon2411 avatar Dec 16 '19 16:12 gryphon2411

@Eido95 waiting for merge here https://github.com/sphinx-contrib/sphinxcontrib-versioning/pull/78

z00sts avatar Dec 17 '19 07:12 z00sts

is anyone still facing this issue in 2022? I am getting the same error.

Sachin-Suresh avatar Aug 09 '22 07:08 Sachin-Suresh

Same issue here. I could need the fix as well

$ sphinx-build --version
sphinx-build 5.1.1


$ sphinx-versioning --version
Traceback (most recent call last):
  File "C:\Users\manna\scoop\apps\python\current\lib\runpy.py", line 196, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "C:\Users\manna\scoop\apps\python\current\lib\runpy.py", line 86, in _run_code
    exec(code, run_globals)
  File "C:\Users\manna\scoop\apps\python\current\Scripts\sphinx-versioning.exe\__main__.py", line 4, in <module>
  File "C:\Users\manna\scoop\apps\python\current\lib\site-packages\sphinxcontrib\versioning\__main__.py", line 13, in <module>
    from sphinxcontrib.versioning.routines import build_all, gather_git_info, pre_build, read_local_conf
  File "C:\Users\manna\scoop\apps\python\current\lib\site-packages\sphinxcontrib\versioning\routines.py", line 11, in <module>
    from sphinxcontrib.versioning.sphinx_ import build, read_config
  File "C:\Users\manna\scoop\apps\python\current\lib\site-packages\sphinxcontrib\versioning\sphinx_.py", line 9, in <module>
    from sphinx import application, build_main, locale
ImportError: cannot import name 'build_main' from 'sphinx' (C:\Users\manna\scoop\apps\python\current\lib\site-packages\sphinx\__init__.py)

For the time being I'll be using https://pypi.org/project/sphinx-multiversion/

basejumpa avatar Sep 13 '22 12:09 basejumpa

Same issue here with

❯ sphinx-build --version
sphinx-build 5.0.2

and

❯ sphinx-versioning --version
Traceback (most recent call last):
  File "/home/nik/.local/bin/sphinx-versioning", line 5, in <module>
    from sphinxcontrib.versioning.__main__ import cli
  File "/home/nik/.local/lib/python3.10/site-packages/sphinxcontrib/versioning/__main__.py", line 13, in <module>
    from sphinxcontrib.versioning.routines import build_all, gather_git_info, pre_build, read_local_conf
  File "/home/nik/.local/lib/python3.10/site-packages/sphinxcontrib/versioning/routines.py", line 11, in <module>
    from sphinxcontrib.versioning.sphinx_ import build, read_config
  File "/home/nik/.local/lib/python3.10/site-packages/sphinxcontrib/versioning/sphinx_.py", line 9, in <module>
    from sphinx import application, build_main, locale
ImportError: cannot import name 'build_main' from 'sphinx' (/home/nik/.local/lib/python3.10/site-packages/sphinx/__init__.py)

NikosAlexandris avatar Apr 05 '23 16:04 NikosAlexandris

same issue here:

$ sphinx-build --version
sphinx-build 5.3.0

waltsims avatar Jun 13 '23 01:06 waltsims

Same issue here:

OS: Windows 10 python: 3.8.10 sphinx: 6.2.1 sphinxcontrib-versioning: 2.2.1

adam-grant-hendry avatar Sep 22 '23 18:09 adam-grant-hendry