It can be hard to be sure what the Python search path is.  Here is what 
shows up for my system when I have activated my "Leo" VE.  This VE (on 
Windows) is contained in the directory  C:\Tom\venvs\leo. Note that on 
Windows you don't have to source the script.

C:\Tom\venvs\leo>Scripts\activate

(leo) C:\Tom\venvs\leo>py -c "import sys;print('\n'.join(sys.path))

C:\Users\tom\AppData\Local\Programs\Python\Python312\python312.zip
C:\Users\tom\AppData\Local\Programs\Python\Python312\DLLs
C:\Users\tom\AppData\Local\Programs\Python\Python312\Lib
C:\Users\tom\AppData\Local\Programs\Python\Python312
C:\Tom\venvs\leo
C:\Tom\venvs\leo\Lib\site-packages
C:\Tom\venvs\leo\Lib\site-packages\win32
C:\Tom\venvs\leo\Lib\site-packages\win32\lib
C:\Tom\venvs\leo\Lib\site-packages\Pythonwin

This is for a pip-installed version of Leo, not one cloned from github.  
Notice how Python will search its original installation path first, then 
the venv paths.  Anything that was installed into the system's 
*Lib/sitepackages* location will be found first.  Especially on Linux it's 
unlikely that Leo was installed there.

The script to launch Leo is in the *Scripts* directory.

(leo) C:\Tom\venvs\leo>dir Scripts |find "leo"
 Directory of C:\Tom\venvs\leo\Scripts
02/28/2024  09:20 AM           108,401 leo-c.exe
02/28/2024  09:20 AM           108,401 leo-console.exe
02/28/2024  09:20 AM           108,385 leo-m.exe
02/28/2024  09:20 AM           108,385 leo-messages.exe
02/28/2024  09:20 AM           102,242 leo.exe

Otherwise, for this venv, when you issue the command python3 -m 
leo.core.runLeo,  Python will look for a *leo* directory from top to bottom 
in the list of directory on sys.path.  It will get to 
C:\Tom\venvs\leo\Lib\site-package, and will find it there.

Sometimes, and this applies to Debian IIRC, the first time Leo is installed 
on a computer you might see an error message when you try to run it. The error 
message will say that "libxcb-cursor0" is needed (that's "cursorZero", in 
case the font zero looks like the letter O). You can install that library 
with the system package installer (e.g., apt-get),  But that may or may not 
be the right name to use for the library.  If the install attempt doesn't 
work, you can check at http://pkgs.org/ to find a better package name.

For running Leo with a clone of the Leo repo, I use a little script that 
sets the PYTHONPATH to the location of the cloned repo.  Here's my Linux 
script (the git clone is in ~/git/leo-editor):

(qt6) tom@thomas-xubuntu-VirtualBox:~/venv/qt6$ whereis py-leo-git
py-leo-git: /home/tom/.local/bin/py-leo-git
(qt6) tom@thomas-xubuntu-VirtualBox:~/venv/qt6$ cat 
/home/tom/.local/bin/py-leo-git
#! /usr/bin/bash 
if [ "$PYTHONPATH" == "" ]; then 
    export PYTHONPATH=~/git/leo-editor
    echo "Using PYTHONPATH:" $PYTHONPATH
else
    echo "PYTHONPATH already set to " $PYTHONPATH
fi

python3 -m leo.core.runLeo $*

Running this script from inside your activated venv will run Python using 
the copy of Leo that is located in the repo.

HTH

On Tuesday, May 14, 2024 at 1:15:19 PM UTC-4 viktor....@gmail.com wrote:

Hello Thomas,

tbp1...@gmail.com schrieb am Dienstag, 14. Mai 2024 um 16:03:20 UTC+2:

I wonder whether you VE activation somehow got lost during this process.  I 
noticed this:

~$ which leo
/home/user/.local/bin/leo

This says that typing "leo" uses that script, which is not one in the VE.  
Try this, and let us know what happens -

    First, activate your VE environment.  Then issue

    python3 -m leo.core.runLeo --version

You should get something like this:

Leo 6.7.9-devel, ekr-3892-vr-pane branch, build 8ede3fc77e
2024-05-14 05:12:23 -0500
Python 3.11.6
linux


Thanks a lot for your feedback ! - This is what the command returns in the 
first place:

user@debian-leo-study-vm:~$ cd PyVE/GitHub/Leo/

user@debian-leo-study-vm:~/PyVE/GitHub/Leo$ 
user@debian-leo-study-vm:~/PyVE/GitHub/Leo$ source bin/activate
(Leo) user@debian-leo-study-vm:~/PyVE/GitHub/Leo$ 
(Leo) user@debian-leo-study-vm:~/PyVE/GitHub/Leo$ python3 -m 
leo.core.runLeo --version
/home/user/PyVE/GitHub/Leo/bin/python3: Error while finding module 
specification for 'leo.core.runLeo' (ModuleNotFoundError: No module named 
'leo')
(Leo) user@debian-leo-study-vm:~/PyVE/GitHub/Leo$ 

Only if I move a directory 'down' the command works:

(Leo) user@debian-leo-study-vm:~/PyVE/GitHub/Leo$ 
(Leo) user@debian-leo-study-vm:~/PyVE/GitHub/Leo$ cd leo-editor/
(Leo) user@debian-leo-study-vm:~/PyVE/GitHub/Leo/leo-editor$ 
(Leo) user@debian-leo-study-vm:~/PyVE/GitHub/Leo/leo-editor$ python3 -m 
leo.core.runLeo --version
Leo 6.7.9-devel, devel branch, build fb85027eac
2024-05-13 16:10:23 -0500
Python 3.11.2
linux
(Leo) user@debian-leo-study-vm:~/PyVE/GitHub/Leo/leo-editor$ 

I guess some more ' reading' on my side is needed ...

With kind regards,

Viktor

-- 
You received this message because you are subscribed to the Google Groups 
"leo-editor" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to leo-editor+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/leo-editor/bb51d954-6d9b-4533-955f-ca23e82739fdn%40googlegroups.com.

Reply via email to