Note: If you find it useful to install python components via pip
, it’s best to keep them in “user-space” (Home
directory) by installing them via $ pip install --user <component>
… this will keep the core python install happier/cleaner, and make it easier to keep track of what you’ve personally installed.
When Python gets a major update… like python 3.9 (old) => 3.10 (new)… there’s a few things to do:
- Before Upgrading
- pip Installed
- run
$ pip freeze --user > pip_list_user.txt
to get a list of all “user” installed python components for the current (pre-upgrade) python (which should be similar to looking inside/home/<userid>/.local/lib/python3.9
) (old) - Sometimes installing one component will install dependencies as well… to see these dependencies it can be useful to run
$ pip show <component>
. This could also help to shorten the “re-install” list inside pip_list_user.txt if the inter-dependencies are known.
- run
- Repo Installed
- running
$ pacman -Qoq /usr/lib/python3.9
(old) will list many existing “system” (and AUR) packages thatpacman|pamac
(the upgrade) “should” re-install for the upgraded python version (i.e. python 3.9 => 3.10)
- running
- pip Installed
- After Upgrading
- pip Installed
- Option 1: If you want what’s in the pip_list_user.txt (old python 3.9) file to be installed under the new python 3.10, there are a few choices:
- Reinstall them manually via
$ pip install --user <component>
(paying attention to dependencies to re-install with the least steps) - Look for an AUR/repo controlled component (removes reliance on
pip
)
- Reinstall them manually via
- Option 2: If you don’t want what’s in the pip_list_user.txt (old python 3.9) file to be installed under the new python 3.10, simply perform to the next “remove” step
- Either path/option chosen above, you’ll also want to make sure to clear out the old 3.9 “user-space” via
$ rm -rdv /home/<userid>/.local/lib/python3.9
(old)
- Option 1: If you want what’s in the pip_list_user.txt (old python 3.9) file to be installed under the new python 3.10, there are a few choices:
- Repo Installed
- running
$ pacman -Qoq /usr/lib/python3.9
(old) should be empty… if it’s not, you may need to run the following command to update them (i.e. rebuilding AUR packages)…$ pamac build $(pacman -Qoq /usr/lib/python3.9) --no-confirm
- running
- It’s a good idea to check
/user/lib/python3.9
(old) to make sure it was completely removed. Had it once where one “pycache” file prevented a directory tree from being removed… solved via$ sudo rm -rdv /usr/lib/python3.9
(old)
- pip Installed