Subtle differrences b/w installations of Leo from GitHub & PyPI

38 views
Skip to first unread message

Viktor Ransmayr

unread,
Jul 10, 2025, 5:36:46 AM7/10/25
to leo-editor
Hello Edward & Community,

Context: I wanted to try out the new branch 'boltex/issue4388' from Felix to provide F/B concerning the 'websockets' issue ...

Yesterday I was able to install & start Leo 6.8.5 from PyPI into a Test-VM w/o any problems - See "Log-001".

Today I tried to install & start Leo in this branch from GH - but - 'leo' is not found - See "Log-002".

I know, that I could adjust $PATH manually - but - should a new user really be required to do so ?

What would be necessary to achieve a 'similar' usage experience as with PyPI ?

With kind regards,

Viktor

### Log-001 ###

    [user@Test-VM03 ~]$
    [user@Test-VM03 ~]$ python -m pip install leo
    Defaulting to user installation because normal site-packages is not writeable
    Collecting leo
      Downloading leo-6.8.5-py3-none-any.whl.metadata (4.0 kB)

    ...

    Downloading more_itertools-10.7.0-py3-none-any.whl (65 kB)
    Installing collected packages: tk, PyQt6-WebEngine-Qt6, PyQt6-Qt6, fastjsonschema, urllib3, typing_extensions, types-six, types-PyYAML, types-Markdown, types-docutils, traitlets, tornado, tomlkit, sphinxcontrib-serializinghtml, sphinxcontrib-qthelp, sphinxcontrib-jsmath, sphinxcontrib-htmlhelp, sphinxcontrib-devhelp, sphinxcontrib-applehelp, soupsieve, snowballstemmer, ruff, rpds-py, roman-numerals-py, rfc3986, pyyaml, PyQt6-sip, pyproject_hooks, pygments, pyflakes, pyenchant, pycodestyle, pscript, pluggy, platformdirs, pathspec, parso, packaging, nh3, mypy-extensions, more-itertools, mdurl, mccabe, MarkupSafe, markdown, kiwisolver, jeepney, jaraco.context, isort, iniconfig, imagesize, fonttools, docutils, dill, dialite, cycler, coverage, contourpy, click, charset_normalizer, certifi, babel, attrs, asttokens, astroid, alabaster, webruntime, types-requests, requests, referencing, readme-renderer, pytest, PyQt6, pylint, mypy, matplotlib, markdown-it-py, jupyter-core, Jinja2, jedi, jaraco.functools, jaraco.classes, flake8, build, black, beautifulsoup4, sphinx, rich, requests-toolbelt, pytest-cov, PyQt6-WebEngine, PyQt6-QScintilla, mdit-py-plugins, jsonschema-specifications, id, flexx, cryptography, types-paramiko, SecretStorage, jsonschema, nbformat, keyring, twine, jupytext, leo
    Successfully installed Jinja2-3.1.6 MarkupSafe-3.0.2 PyQt6-6.9.1 PyQt6-QScintilla-2.14.1 PyQt6-Qt6-6.9.1 PyQt6-WebEngine-6.9.0 PyQt6-WebEngine-Qt6-6.9.1 PyQt6-sip-13.10.2 SecretStorage-3.3.3 alabaster-1.0.0 astroid-3.3.10 asttokens-3.0.0 attrs-25.3.0 babel-2.17.0 beautifulsoup4-4.13.4 black-25.1.0 build-1.2.2.post1 certifi-2025.7.9 charset_normalizer-3.4.2 click-8.2.1 contourpy-1.3.2 coverage-7.9.2 cryptography-45.0.5 cycler-0.12.1 dialite-0.6.0 dill-0.4.0 docutils-0.21.2 fastjsonschema-2.21.1 flake8-7.3.0 flexx-0.8.4 fonttools-4.58.5 id-1.5.0 imagesize-1.4.1 iniconfig-2.1.0 isort-6.0.1 jaraco.classes-3.4.0 jaraco.context-6.0.1 jaraco.functools-4.2.1 jedi-0.19.2 jeepney-0.9.0 jsonschema-4.24.0 jsonschema-specifications-2025.4.1 jupyter-core-5.8.1 jupytext-1.17.2 keyring-25.6.0 kiwisolver-1.4.8 leo-6.8.5 markdown-3.8.2 markdown-it-py-3.0.0 matplotlib-3.10.3 mccabe-0.7.0 mdit-py-plugins-0.4.2 mdurl-0.1.2 more-itertools-10.7.0 mypy-1.16.1 mypy-extensions-1.1.0 nbformat-5.10.4 nh3-0.2.21 packaging-25.0 parso-0.8.4 pathspec-0.12.1 platformdirs-4.3.8 pluggy-1.6.0 pscript-0.8.0 pycodestyle-2.14.0 pyenchant-3.2.2 pyflakes-3.4.0 pygments-2.19.2 pylint-3.3.7 pyproject_hooks-1.2.0 pytest-8.4.1 pytest-cov-6.2.1 pyyaml-6.0.2 readme-renderer-44.0 referencing-0.36.2 requests-2.32.4 requests-toolbelt-1.0.0 rfc3986-2.0.0 rich-14.0.0 roman-numerals-py-3.1.0 rpds-py-0.26.0 ruff-0.12.2 snowballstemmer-3.0.1 soupsieve-2.7 sphinx-8.2.3 sphinxcontrib-applehelp-2.0.0 sphinxcontrib-devhelp-2.0.0 sphinxcontrib-htmlhelp-2.1.0 sphinxcontrib-jsmath-1.0.1 sphinxcontrib-qthelp-2.0.0 sphinxcontrib-serializinghtml-2.0.0 tk-0.1.0 tomlkit-0.13.3 tornado-6.5.1 traitlets-5.14.3 twine-6.1.0 types-Markdown-3.8.0.20250708 types-PyYAML-6.0.12.20250516 types-docutils-0.21.0.20250708 types-paramiko-3.5.0.20250708 types-requests-2.32.4.20250611 types-six-1.17.0.20250515 typing_extensions-4.14.1 urllib3-2.5.0 webruntime-0.5.8
    [user@Test-VM03 ~]$

    ###

    [user@Test-VM03 ~]$
    [user@Test-VM03 ~]$ which leo
    ~/.local/bin/leo
    [user@Test-VM03 ~]$
    [user@Test-VM03 ~]$ leo --version
    Leo 6.8.5, July 2, 2025
    Python 3.13.5
    linux
    [user@Test-VM03 ~]$

### Log-002 ###

    user@Test-VM04 ~]$
    [user@Test-VM04 ~]$ git clone https://github.com/leo-editor/leo-editor.git
    Cloning into 'leo-editor'...
    remote: Enumerating objects: 244425, done.
    remote: Counting objects: 100% (124/124), done.
    remote: Compressing objects: 100% (86/86), done.
    remote: Total 244425 (delta 73), reused 71 (delta 38), pack-reused 244301 (from 2)
    Receiving objects: 100% (244425/244425), 248.37 MiB | 7.40 MiB/s, done.
    Resolving deltas: 100% (194662/194662), done.
    [user@Test-VM04 ~]$
    [user@Test-VM04 ~]$ cd leo-editor/
    [user@Test-VM04 leo-editor]$
    [user@Test-VM04 leo-editor]$ git branch
    * devel
    [user@Test-VM04 leo-editor]$
    [user@Test-VM04 leo-editor]$ git checkout boltex/issue4388
    branch 'boltex/issue4388' set up to track 'origin/boltex/issue4388'.
    Switched to a new branch 'boltex/issue4388'
    [user@Test-VM04 leo-editor]$
    [user@Test-VM04 leo-editor]$ python -m pip install -r requirements.txt
    Defaulting to user installation because normal site-packages is not writeable
    Ignoring Send2Trash: markers 'platform_system == "Windows"' don't match your environment
    Collecting build>=1.2.1 (from -r requirements.txt (line 12))
      Downloading build-1.2.2.post1-py3-none-any.whl.metadata (6.5 kB)

    ...

    Downloading more_itertools-10.7.0-py3-none-any.whl (65 kB)
    Installing collected packages: tk, PyQt6-WebEngine-Qt6, PyQt6-Qt6, fastjsonschema, urllib3, typing_extensions, types-six, types-PyYAML, types-Markdown, types-docutils, traitlets, tornado, tomlkit, sphinxcontrib-serializinghtml, sphinxcontrib-qthelp, sphinxcontrib-jsmath, sphinxcontrib-htmlhelp, sphinxcontrib-devhelp, sphinxcontrib-applehelp, soupsieve, snowballstemmer, setuptools, ruff, rpds-py, roman-numerals-py, rfc3986, pyyaml, PyQt6-sip, pyproject_hooks, pygments, pyflakes, pyenchant, pycodestyle, pscript, pluggy, platformdirs, pathspec, parso, packaging, nh3, mypy-extensions, more-itertools, mdurl, mccabe, MarkupSafe, markdown, kiwisolver, jeepney, jaraco.context, isort, iniconfig, imagesize, fonttools, docutils, dill, dialite, cycler, coverage, contourpy, click, charset_normalizer, certifi, babel, attrs, asttokens, astroid, alabaster, webruntime, types-requests, requests, referencing, readme-renderer, pytest, PyQt6, pylint, mypy, matplotlib, markdown-it-py, jupyter-core, Jinja2, jedi, jaraco.functools, jaraco.classes, flake8, build, black, beautifulsoup4, sphinx, rich, requests-toolbelt, pytest-cov, PyQt6-WebEngine, PyQt6-QScintilla, mdit-py-plugins, jsonschema-specifications, id, flexx, cryptography, types-paramiko, SecretStorage, jsonschema, nbformat, keyring, twine, jupytext
    Successfully installed Jinja2-3.1.6 MarkupSafe-3.0.2 PyQt6-6.9.1 PyQt6-QScintilla-2.14.1 PyQt6-Qt6-6.9.1 PyQt6-WebEngine-6.9.0 PyQt6-WebEngine-Qt6-6.9.1 PyQt6-sip-13.10.2 SecretStorage-3.3.3 alabaster-1.0.0 astroid-3.3.10 asttokens-3.0.0 attrs-25.3.0 babel-2.17.0 beautifulsoup4-4.13.4 black-25.1.0 build-1.2.2.post1 certifi-2025.7.9 charset_normalizer-3.4.2 click-8.2.1 contourpy-1.3.2 coverage-7.9.2 cryptography-45.0.5 cycler-0.12.1 dialite-0.6.0 dill-0.4.0 docutils-0.21.2 fastjsonschema-2.21.1 flake8-7.3.0 flexx-0.8.4 fonttools-4.58.5 id-1.5.0 imagesize-1.4.1 iniconfig-2.1.0 isort-6.0.1 jaraco.classes-3.4.0 jaraco.context-6.0.1 jaraco.functools-4.2.1 jedi-0.19.2 jeepney-0.9.0 jsonschema-4.24.0 jsonschema-specifications-2025.4.1 jupyter-core-5.8.1 jupytext-1.17.2 keyring-25.6.0 kiwisolver-1.4.8 markdown-3.8.2 markdown-it-py-3.0.0 matplotlib-3.10.3 mccabe-0.7.0 mdit-py-plugins-0.4.2 mdurl-0.1.2 more-itertools-10.7.0 mypy-1.16.1 mypy-extensions-1.1.0 nbformat-5.10.4 nh3-0.2.21 packaging-25.0 parso-0.8.4 pathspec-0.12.1 platformdirs-4.3.8 pluggy-1.6.0 pscript-0.8.0 pycodestyle-2.14.0 pyenchant-3.2.2 pyflakes-3.4.0 pygments-2.19.2 pylint-3.3.7 pyproject_hooks-1.2.0 pytest-8.4.1 pytest-cov-6.2.1 pyyaml-6.0.2 readme-renderer-44.0 referencing-0.36.2 requests-2.32.4 requests-toolbelt-1.0.0 rfc3986-2.0.0 rich-14.0.0 roman-numerals-py-3.1.0 rpds-py-0.26.0 ruff-0.12.2 setuptools-80.9.0 snowballstemmer-3.0.1 soupsieve-2.7 sphinx-8.2.3 sphinxcontrib-applehelp-2.0.0 sphinxcontrib-devhelp-2.0.0 sphinxcontrib-htmlhelp-2.1.0 sphinxcontrib-jsmath-1.0.1 sphinxcontrib-qthelp-2.0.0 sphinxcontrib-serializinghtml-2.0.0 tk-0.1.0 tomlkit-0.13.3 tornado-6.5.1 traitlets-5.14.3 twine-6.1.0 types-Markdown-3.8.0.20250708 types-PyYAML-6.0.12.20250516 types-docutils-0.21.0.20250710 types-paramiko-3.5.0.20250708 types-requests-2.32.4.20250611 types-six-1.17.0.20250515 typing_extensions-4.14.1 urllib3-2.5.0 webruntime-0.5.8
    [user@Test-VM04 leo-editor]$

    ###

    [user@Test-VM04 leo-editor]$
    [user@Test-VM04 leo-editor]$ which leo
    /usr/bin/which: no leo in (/home/user/.local/bin:/home/user/bin:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin)
    [user@Test-VM04 leo-editor]$

Viktor Ransmayr

unread,
Jul 10, 2025, 6:14:53 AM7/10/25
to leo-editor
Hello Edward & Felix,

Viktor Ransmayr schrieb am Donnerstag, 10. Juli 2025 um 11:36:46 UTC+2:

Context: I wanted to try out the new branch 'boltex/issue4388' from Felix to provide F/B concerning the 'websockets' issue ...

Yesterday I was able to install & start Leo 6.8.5 from PyPI into a Test-VM w/o any problems - See "Log-001".

Today I tried to install & start Leo in this branch from GH - but - 'leo' is not found - See "Log-002".

I know, that I could adjust $PATH manually - but - should a new user really be required to do so ?

What would be necessary to achieve a 'similar' usage experience as with PyPI ?

I did follow up the planned steps of the context, i.e. provide F/B concerning the  'boltex/issue4388' branch:

Everything works like a charm there !

### Here's the log ...

* Create Test VM & install Leo from GH into it - OK? - See "Log-001".
*
* ---> WHY is Leo not found ?
*
* Start Leo for the first time outside of VS Codium - OK - See "Log-002".
* Start VS Codium & install 'LeoInteg' extension - OK - See "Log-003".
*
* ---> No configuration of 'LeoInteg' extension necessary.
* ---> It automatically detcted the installation from GitHub at ~/leo-editor !
*
* Start Server - Not OK (expected) - See "Log-004".
*
* ---> Install 'websockets' from PyPI.
*
* Start Server - OK - See "Log-005".

###

I guess it is save to ignore my previous questions ;-)

With kind regards,

Viktor

Viktor Ransmayr

unread,
Jul 10, 2025, 6:25:49 AM7/10/25
to leo-editor
Viktor Ransmayr schrieb am Donnerstag, 10. Juli 2025 um 12:14:53 UTC+2:
...

I did follow up the planned steps of the context, i.e. provide F/B concerning the  'boltex/issue4388' branch:

Everything works like a charm there !

    Launching server with command: python3 /home/user/leo-editor/leo/core/leoserver.py --port 32125

    Starting LeoBridge Server 1.0.13 (Launch with -h for help)
    LeoServer: init leoBridge in 0.48 sec.
    LeoBridge started at localhost on port: 32125.
    Ctrl+c to break
    server: User Connected, Total: 1, Limit: 1
    Leo 6.8.6-devel, issue4388 branch, build f6014bb722
    2025-07-09 16:44:12 -0400
    Python 3.13.5, LeoGui: dummy version
    linux

Thomas Passin

unread,
Jul 10, 2025, 7:50:51 AM7/10/25
to leo-editor
The same thing will happen with Windows. And in Windows, you don't have a which command - a given file extension or file type has at most one program that executes it.

I don't see why or how a git clone operation could make the location of the Leo executable known to the OS. How would git know which executable is the right one to use and how to launch it?

I just installed LeoInteg into VSCodium for the first time on my Windows machine. When I ran it, it found Leo from PyPi, not from my GitHub clone.  If you use the settings to tell Leointeg to use leoserver from the clone, it will look for everything else there. 

Viktor Ransmayr

unread,
Jul 10, 2025, 8:35:22 AM7/10/25
to leo-e...@googlegroups.com
Hello Thomas,

Am Do., 10. Juli 2025 um 13:50 Uhr schrieb Thomas Passin <tbp1...@gmail.com>:
The same thing will happen with Windows. And in Windows, you don't have a which command - a given file extension or file type has at most one program that executes it.

I don't see why or how a git clone operation could make the location of the Leo executable known to the OS. How would git know which executable is the right one to use and how to launch it?

Yes, I realized that after my initial message [1] to the group.

That's why in my second message [2] at the end I wrote "I guess it is save to ignore my previous questions ;-)"
 
I think, I got confused by the fact that pip is used in both cases (GH & PyPI) - but - Leo itself is excluded in the (source) installation from GH ...

I just installed LeoInteg into VSCodium for the first time on my Windows machine. When I ran it, it found Leo from PyPi, not from my GitHub clone.  If you use the settings to tell Leointeg to use leoserver from the clone, it will look for everything else there. 

On Thursday, July 10, 2025 at 6:25:49 AM UTC-4 viktor....@gmail.com wrote:
Viktor Ransmayr schrieb am Donnerstag, 10. Juli 2025 um 12:14:53 UTC+2:
...

I did follow up the planned steps of the context, i.e. provide F/B concerning the  'boltex/issue4388' branch:

Everything works like a charm there !

Reply all
Reply to author
Forward
0 new messages