Leo Install Failure On Windows/Python 3.12

283 views
Skip to first unread message

Thomas Passin

unread,
Oct 13, 2023, 2:00:20 PM10/13/23
to leo-editor
Having just installed Python3.12 on Windows, I went to install Leo using pip.  I got a bog fail with a very long error message, below (I haven't done any diagnosis yet):

C:\Tom\git\gf4-project>py -m pip install --user leo
Collecting leo
  Obtaining dependency information for leo from https://files.pythonhosted.org/packages/6a/84/6027d65578461cac1c7dc481294c300ebc06f4433132ddb45c4188cc6a29/leo-6.7.4-py3-none-any.whl.metadata
  Using cached leo-6.7.4-py3-none-any.whl.metadata (3.8 kB)
Collecting PyQt5>=5.15 (from leo)
  Using cached PyQt5-5.15.9-cp37-abi3-win_amd64.whl (6.8 MB)
Collecting PyQtWebEngine (from leo)
  Using cached PyQtWebEngine-5.15.6-cp37-abi3-win_amd64.whl (182 kB)
Collecting asttokens (from leo)
  Obtaining dependency information for asttokens from https://files.pythonhosted.org/packages/4f/25/adda9979586d9606300415c89ad0e4c5b53d72b92d2747a3c634701a6a02/asttokens-2.4.0-py2.py3-none-any.whl.metadata
  Downloading asttokens-2.4.0-py2.py3-none-any.whl.metadata (4.9 kB)
Collecting build>=0.6.0 (from leo)
  Obtaining dependency information for build>=0.6.0 from https://files.pythonhosted.org/packages/93/dd/b464b728b866aaa62785a609e0dd8c72201d62c5f7c53e7c20f4dceb085f/build-1.0.3-py3-none-any.whl.metadata
  Downloading build-1.0.3-py3-none-any.whl.metadata (4.2 kB)
Requirement already satisfied: docutils in c:\users\tom\appdata\local\programs\python\python312\lib\site-packages (from leo) (0.20.1)
Collecting flexx (from leo)
  Using cached flexx-0.8.4-py2.py3-none-any.whl (351 kB)
Collecting meta (from leo)
  Using cached meta-1.0.2.tar.gz (49 kB)
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Preparing metadata (pyproject.toml) ... done
Collecting nbformat (from leo)
  Obtaining dependency information for nbformat from https://files.pythonhosted.org/packages/f4/e7/ef30a90b70eba39e675689b9eaaa92530a71d7435ab8f9cae520814e0caf/nbformat-5.9.2-py3-none-any.whl.metadata
  Downloading nbformat-5.9.2-py3-none-any.whl.metadata (3.4 kB)
Collecting pylint (from leo)
  Obtaining dependency information for pylint from https://files.pythonhosted.org/packages/73/79/e9649dd36ea3ada2b7a14e279b3dc6a9502541e1fd2ba5ed73cbd9e27840/pylint-3.0.1-py3-none-any.whl.metadata
  Downloading pylint-3.0.1-py3-none-any.whl.metadata (12 kB)
Collecting pyflakes (from leo)
  Obtaining dependency information for pyflakes from https://files.pythonhosted.org/packages/00/e9/1e1fd7fae559bfd07704991e9a59dd1349b72423c904256c073ce88a9940/pyflakes-3.1.0-py2.py3-none-any.whl.metadata
  Downloading pyflakes-3.1.0-py2.py3-none-any.whl.metadata (3.5 kB)
Collecting black (from leo)
  Obtaining dependency information for black from https://files.pythonhosted.org/packages/28/c7/150de595f9e5ee1efffeb398acfac3e37d218171100049c77e494326dc4b/black-23.9.1-py3-none-any.whl.metadata
  Downloading black-23.9.1-py3-none-any.whl.metadata (65 kB)
     ----------------------------------- 65.1/65.1 kB 1.7 MB/s eta 0:00:00
Collecting pyenchant (from leo)
  Using cached pyenchant-3.2.2-py3-none-win_amd64.whl (11.9 MB)
Collecting pyshortcuts>=1.7 (from leo)
  Downloading pyshortcuts-1.9.0-py3-none-any.whl (158 kB)
     --------------------------------- 158.1/158.1 kB 4.8 MB/s eta 0:00:00
Collecting sphinx (from leo)
  Obtaining dependency information for sphinx from https://files.pythonhosted.org/packages/b2/b6/8ed35256aa530a9d3da15d20bdc0ba888d5364441bb50a5a83ee7827affe/sphinx-7.2.6-py3-none-any.whl.metadata
  Downloading sphinx-7.2.6-py3-none-any.whl.metadata (5.9 kB)
Collecting tk (from leo)
  Using cached tk-0.1.0-py3-none-any.whl (3.9 kB)
INFO: pip is looking at multiple versions of leo to determine which version is compatible with other requirements. This could take a while.
Collecting leo
  Obtaining dependency information for leo from https://files.pythonhosted.org/packages/3e/99/4ecc80e91230cdb10c4f48950a5c88e31107d9997eafd8b950dd2e496696/leo-6.7.3-py3-none-any.whl.metadata
  Downloading leo-6.7.3-py3-none-any.whl.metadata (3.6 kB)
  Using cached leo-6.7.2-py3-none-any.whl (15.6 MB)
  Using cached leo-6.7.1-py3-none-any.whl (9.9 MB)
  Downloading leo-6.7.0-py3-none-any.whl (9.8 MB)
     ------------------------------------- 9.8/9.8 MB 9.6 MB/s eta 0:00:00
  Downloading leo-6.6.4-py3-none-any.whl (9.8 MB)
     ------------------------------------ 9.8/9.8 MB 27.3 MB/s eta 0:00:00
  Using cached leo-6.6.3-py3-none-any.whl (9.8 MB)
  Downloading leo-6.6.2-2.tar.gz (13.9 MB)
     ---------------------------------- 13.9/13.9 MB 19.8 MB/s eta 0:00:00
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Preparing metadata (pyproject.toml) ... done
Discarding https://files.pythonhosted.org/packages/b7/08/d1542b5402be52bc0b8b58d4b0be4ec83eefdd69249e5fcf554b455c656b/leo-6.6.2-2.tar.gz (from https://pypi.org/simple/leo/) (requires-python:>=3.6): Requested leo from https://files.pythonhosted.org/packages/b7/08/d1542b5402be52bc0b8b58d4b0be4ec83eefdd69249e5fcf554b455c656b/leo-6.6.2-2.tar.gz has inconsistent version: expected '6.6.2.post2', but metadata has '6.6.2'
  Downloading leo-6.6.2-2-py3-none-any.whl (16.5 MB)
     ---------------------------------- 16.5/16.5 MB 16.8 MB/s eta 0:00:00
INFO: pip is still looking at multiple versions of leo to determine which version is compatible with other requirements. This could take a while.
  Using cached leo-6.6.1-py3-none-any.whl (13.3 MB)
  Using cached leo-6.6-py3-none-any.whl (13.2 MB)
  Using cached leo-6.5-2.tar.gz (7.8 MB)
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Preparing metadata (pyproject.toml) ... done
Discarding https://files.pythonhosted.org/packages/45/cd/476186942882423ea5b2ccba0aa791f8e415d075eaf2c435bf5287ffb11f/leo-6.5-2.tar.gz (from https://pypi.org/simple/leo/) (requires-python:>=3.6): Requested leo from https://files.pythonhosted.org/packages/45/cd/476186942882423ea5b2ccba0aa791f8e415d075eaf2c435bf5287ffb11f/leo-6.5-2.tar.gz has inconsistent version: expected '6.5.post2', but metadata has '6.5'
  Using cached leo-6.5-2-py3-none-any.whl (9.6 MB)
  Downloading leo-6.4-3.tar.gz (7.9 MB)
     ------------------------------------ 7.9/7.9 MB 16.2 MB/s eta 0:00:00
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Preparing metadata (pyproject.toml) ... done
Discarding https://files.pythonhosted.org/packages/e3/a6/ebf21e626bf00a77e3984f612ad587c41e1f687891039e497bd4f00fbaa7/leo-6.4-3.tar.gz (from https://pypi.org/simple/leo/) (requires-python:>=3.6): Requested leo from https://files.pythonhosted.org/packages/e3/a6/ebf21e626bf00a77e3984f612ad587c41e1f687891039e497bd4f00fbaa7/leo-6.4-3.tar.gz has inconsistent version: expected '6.4.post3', but metadata has '6.4'
  Downloading leo-6.4-3-py3-none-any.whl (9.7 MB)
     ------------------------------------ 9.7/9.7 MB 18.2 MB/s eta 0:00:00
  Using cached leo-6.3-py3-none-any.whl (9.7 MB)
INFO: This is taking longer than usual. You might need to provide the dependency resolver with stricter constraints to reduce runtime. See https://pip.pypa.io/warnings/backtracking for guidance. If you want to abort this run, press Ctrl + C.
  Downloading leo-6.2.1-py3-none-any.whl (9.6 MB)
     ------------------------------------ 9.6/9.6 MB 12.0 MB/s eta 0:00:00
Collecting setupext-janitor>=1.1 (from leo)
  Using cached setupext_janitor-1.1.2-py2.py3-none-any.whl (7.6 kB)
Collecting leo
  Downloading leo-6.2-py3-none-any.whl (9.6 MB)
     ------------------------------------- 9.6/9.6 MB 9.5 MB/s eta 0:00:00
  Downloading leo-6.1-py2.py3-none-any.whl (9.4 MB)
     ------------------------------------ 9.4/9.4 MB 18.8 MB/s eta 0:00:00
  Using cached leo-6.0-py2.py3-none-any.whl (9.4 MB)
Collecting shortcutter (from leo)
  Using cached shortcutter-0.1.21.tar.gz (30 kB)
  Installing build dependencies ... done
  Getting requirements to build wheel ... error
  error: subprocess-exited-with-error

  × Getting requirements to build wheel did not run successfully.
  │ exit code: 1
  ╰─> [31 lines of output]
      C:\Users\tom\AppData\Local\Temp\pip-install-i_4f831n\shortcutter_83fcdcd3eede471e9e35217d7c6a931f\versioneer.py:485: SyntaxWarning: invalid escape sequence '\s'
        LONG_VERSION_PY['git'] = '''
      Traceback (most recent call last):
        File "C:\Users\tom\AppData\Local\Programs\Python\Python312\Lib\site-packages\pip\_vendor\pyproject_hooks\_in_process\_in_process.py", line 353, in <module>
          main()
        File "C:\Users\tom\AppData\Local\Programs\Python\Python312\Lib\site-packages\pip\_vendor\pyproject_hooks\_in_process\_in_process.py", line 335, in main
          json_out['return_val'] = hook(**hook_input['kwargs'])
                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "C:\Users\tom\AppData\Local\Programs\Python\Python312\Lib\site-packages\pip\_vendor\pyproject_hooks\_in_process\_in_process.py", line 118, in get_requires_for_build_wheel
          return hook(config_settings)
                 ^^^^^^^^^^^^^^^^^^^^^
        File "C:\Users\tom\AppData\Local\Temp\pip-build-env-luv9yyzl\overlay\Lib\site-packages\setuptools\build_meta.py", line 355, in get_requires_for_build_wheel
          return self._get_build_requires(config_settings, requirements=['wheel'])
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "C:\Users\tom\AppData\Local\Temp\pip-build-env-luv9yyzl\overlay\Lib\site-packages\setuptools\build_meta.py", line 325, in _get_build_requires
          self.run_setup()
        File "C:\Users\tom\AppData\Local\Temp\pip-build-env-luv9yyzl\overlay\Lib\site-packages\setuptools\build_meta.py", line 507, in run_setup
          super(_BuildMetaLegacyBackend, self).run_setup(setup_script=setup_script)
        File "C:\Users\tom\AppData\Local\Temp\pip-build-env-luv9yyzl\overlay\Lib\site-packages\setuptools\build_meta.py", line 341, in run_setup
          exec(code, locals())
        File "<string>", line 23, in <module>
        File "C:\Users\tom\AppData\Local\Temp\pip-install-i_4f831n\shortcutter_83fcdcd3eede471e9e35217d7c6a931f\versioneer.py", line 1473, in get_version
          return get_versions()["version"]
                 ^^^^^^^^^^^^^^
        File "C:\Users\tom\AppData\Local\Temp\pip-install-i_4f831n\shortcutter_83fcdcd3eede471e9e35217d7c6a931f\versioneer.py", line 1406, in get_versions
          cfg = get_config_from_root(root)
                ^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "C:\Users\tom\AppData\Local\Temp\pip-install-i_4f831n\shortcutter_83fcdcd3eede471e9e35217d7c6a931f\versioneer.py", line 412, in get_config_from_root
          parser = configparser.SafeConfigParser()
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      AttributeError: module 'configparser' has no attribute 'SafeConfigParser'. Did you mean: 'RawConfigParser'?
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
error: subprocess-exited-with-error

× Getting requirements to build wheel did not run successfully.
│ exit code: 1
╰─> See above for output.

note: This error originates from a subprocess, and is likely not a problem with pip.

Thomas Passin

unread,
Oct 13, 2023, 2:09:46 PM10/13/23
to leo-editor
Note that after I manually installed pyqt6 and PyQt6-WebEngine, then I was able to run Leo from my Git clone.  I don't know yet what functionality might not work.  But there was no install by pip into site-packages .

Thomas Passin

unread,
Oct 16, 2023, 7:41:31 AM10/16/23
to leo-editor
I found a work-around for installing Leo from PyPi (i.e., with pip) under Python 3.12.  I already had updated to Leo 3.7.4 under Python 3.11.  I copied the entire leo directory under site-packages for Python 3.11 and pasted it into site-packages for Python 3.12.  Leo launched and seems to work normally. (I normally run Leo from my clone directory, not the PyPi verson).

Of course, you have to manually install any dependencies that didn't get installed when the pip install failed.

Reply all
Reply to author
Forward
0 new messages