Hair pulling? It's the most barebones unix thing you can imagine. If you understand unix principles, you can use virtual environments and python.
It used to be hard. A global site-packages or dist-packages dir is hard. Conda and all those tools make it worse.
A virtualenv is a directory. It contains a copy of Python and everything needed.
You don't even need to activate it. You can simply use the binaries that exist in those directories.
It's literally this simple:
$ python -m venv pmarreck
$ pmarreck/bin/python --version
Python 3.10.12
$ pmarreck/bin/pip install harlequin
Collecting harlequin
Downloading harlequin-1.8.0-py3-none-any.whl (61 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 61.5/61.5 kB 1.2 MB/s eta 0:00:00
...
Successfully installed MarkupSafe-2.1.3 click-8.1.7 duckdb-0.9.2 harlequin-1.8.0 jinja2-3.1.2 linkify-it-py-2.0.2 markdown-it-py-3.0.0 mdit-py-plugins-0.4.0 mdurl-0.1.2 numpy-1.26.3 platformdirs-3.11.0 prompt_toolkit-3.0.36 pyarrow-14.0.2 pygments-2.17.2 pyperclip-1.8.2 questionary-2.0.1 rich-13.7.0 rich-click-1.7.3 shandy-sqlfmt-0.21.1 textual-0.46.0 textual-fastdatatable-0.5.0 textual-textarea-0.9.5 tomli-2.0.1 tomlkit-0.12.3 tqdm-4.66.1 tree-sitter-0.20.4 tree_sitter_languages-1.9.1 typing-extensions-4.9.0 uc-micro-py-1.0.2 wcwidth-0.2.12
$ pmarreck/bin/harlequin
Boom, the tool launched immediately. No conflicts with anything else. When I am done, `rm -rf ~/pmarreck`, done.
I did all of this in my home directory.
It literally cannot get easier than this.
It used to be hard. A global site-packages or dist-packages dir is hard. Conda and all those tools make it worse.
A virtualenv is a directory. It contains a copy of Python and everything needed.
You don't even need to activate it. You can simply use the binaries that exist in those directories.
It's literally this simple:
Boom, the tool launched immediately. No conflicts with anything else. When I am done, `rm -rf ~/pmarreck`, done.I did all of this in my home directory.
It literally cannot get easier than this.