On Tue, 20 Dec 2022 at 03:05, Thomas Passin <li...@tompassin.net> wrote: > > That's not been my experience. Windows installers for Python have > worked well for me over many generations of Python releases. It's Linux > where I've found difficulties. For example, if your distro's Python > install didn't include tkinter (or even pip), how do you get it? It's > different for different Linux distros. I generally have to use internet > searches to find out.
If you want to use your distro's Python and add more stuff to it globally, then yes, it depends on your distro. This is not really a surprise. > For another example, when you use pip to install a package, it sometimes > suggests that you install a newer version of pip itself. Should you do > that? On Linux, probably not, because the distro will have modified pip > so it puts things in distro-specific places. Yet there is no newer > version of pip available through the distro's package manager. Will > anything bad happen if you don't update pip? Who knows? Virtual environments work the same way regardless of distro, including allowing you to install an upgraded pip. As long as your distro provides the venv package (on Debian, that's in python3-venv), you can just: $ python3 -m venv env $ source env/bin/activate $ pip install -U pip $ pip install -r requirements.txt $ pip install some-package-name $ etc etc etc etc etc This is also a recommended way to do things on Windows, so you don't even need to do things differently. > I have a Linux VM that has several versions of Python3 on it. Python3.8 > came installed with the distro, but for some programs I need Python > 3.9+. If I forget which versions I have, how can I find out? People > say to use which, but that doesn't work - it only reports "python3". > This does work, but it's not all that easy to remember (the grep "site" > part is just to filter out uninformative result lines): Use what your shell already offers you! If you have multiple Pythons installed, type "python3" and hit tab twice. You should get a list of options. The exact shell you're using will affect how they're shown, but I'm pretty sure most shells (at least, the ones designed to be interactive - /bin/dash might not) will give you some facility like this. rosuav@sikorsky:~$ python3 python3 python3.5-dbg-config python3.8-config python3.10 python3.5dm python3.8m python3.10-config python3.5dm-config python3.8m-config python3.11 python3.5m python3.9 python3.11-config python3.5m-config python3.9-config python3.12 python3.6 python3.9d python3.12-config python3.6-config python3.9-dbg python3.4 python3.6m python3.9-dbg-config python3.4-config python3.6m-config python3.9d-config python3.4m python3.7 python3-config python3.4m-config python3.7-config python3d python3.5 python3.7m python3-dbg python3.5-config python3.7m-config python3-dbg-config python3.5-dbg python3.8 python3d-config rosuav@sikorsky:~$ python3 Yes, this is a bit noisy in that it has the -config and -dbg-config tools listed as well, but you can easily see all the variants that are installed. > ~$ find 2>/dev/null ~ -name python -type d |grep "site" > /home/tom/.local/lib/python3.9/site-packages/PyQt5/Qt5/qsci/api/python > /home/tom/.local/lib/python3.8/site-packages/pandas/_libs/src/ujson/python > /home/tom/.local/lib/python3.10/site-packages/PyQt5/Qt5/qsci/api/python Ugh, that's a horribly inefficient way to do it. All you need to do is search $PATH. If tab completion isn't suitable, you could probably use "whereis python3", though it's probably a bit noisy. > Not that this task is much easier to remember on Windows, but it's not > harder. One way: the "py" launcher will tell you: > > py --list > -V:3.10 * Python 3.10 (64-bit) > -V:3.9 Python 3.9 (64-bit) > -V:3.7 Python 3.7 (64-bit) > -V:2.7 > > This is not Linux-bashing, but there's no need for Windows-bashing either. There's no need for Linux-bashing when Linux isn't the problem. :) And Windows wasn't the OP's problem. Nor was Python. The OP moaned about a lack of IDEs, when pretty much every IDE and text editor out there has Python support. We're not here to bash anything. Well, except maybe the popular Unix shell. I'll /bin/bash that every day of the week... ahem. Anyhow. We're here to share tips and help everyone be more productive. ChrisA -- https://mail.python.org/mailman/listinfo/python-list