On Wednesday, August 23, 2023 at 9:01:46 PM UTC-4 Félix wrote: Also, i don't know what "-m" does after "py", but since it worked, then perhaps the python command you should put in is "py -m" .
This is something that everyone should learn. The -m flag means to run the parameter as a module. Pip can be run as a python program but also as a python module. So py -m pip ... Basically, any module that will execute when imported can be started this way. Why invoke a program this way? 1. You automatically get the right version for the Python executable you are running. For example, if you have both Python 3.9 and 3.11 installed, a bare py will run the latest install, in this case Python 3.11. With the -m flag, this executable will look for a "pip" module in its own pythonpath. OTOH, if you just tried to run pip as a program or script, you might get the version installed for Python 3.9. It all depends on how the paths were set up on your system during installation. Using py -m guarantees getting the right one. Similarly, running Leo with py -m leo.core.runLeo guarantees you will get the Leo installation that goes with Python3.11 (in this example). You can invoke other Python installed versions, even Python 2.x versions, with the *py* launcher by specifying them as command line parameters. If you set the PYTHONPATH environmental variable, for example to *git/leo-editor* if you have cloned the Leo distro, its location will come first on the pythonpath and code from that location will be loaded first. That's how I can run Leo from my clone or from the pip-installed version depending on whether I have set PYTHONPATH. 2. If a program can be run as a module (and is on the pythonpath) you don't need to know where on the disk it's located. You do need to know the module path, but that's usually easier to find or learn about. In this case, IH wanted to run leoserver.py, which is in Leo's *leo/core* directory. This file can be run as a module (you can just try it to see if it works), so we don't have to remember and type its full path, or start from the right directory. We just type py -m leo.core.leoserver (*without the ".py"*). For LeoInteg, you don't need to include *-m* in the startup setting. You do need to give the "Leo-Editor Path" and it should be the directory immediately under which the "leo" directory exists. For my git clone of Leo, that is *C:\Tom\git\leo-editor. *Currently I leave the* "*Python Command" box empty and everything is working. Hope this helps someone! -- 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 [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/leo-editor/e68ed5c2-e5f4-4eef-87c1-51351715ddf3n%40googlegroups.com.
