Manjaro Difference between revisions of "Python upgrade"

Difference between revisions of "Python upgrade"

From Manjaro
(Re-installing packages after a Python version upgrade)
 
(Replaced content with "Moderator, please delete this page. The article was written here instead: https://forum.manjaro.org/t/when-python-has-its-annual-update-how-to-re-install-your-own-packages...")
Tag: Replaced
 
Line 1: Line 1:
==Python upgrade==
Moderator, please delete this page.
 
The article was written here instead:
===Re-installing your packages after a Python version upgrade===
https://forum.manjaro.org/t/when-python-has-its-annual-update-how-to-re-install-your-own-packages/97372
 
====Background====
 
Python puts out a (minor) version upgrade every year, timed so that it can be included in that year's release of Fedora. After that, Arch Linux, and then Manjaro, upgrade Python in their repositories as soon as they practically can.
 
If you have installed extra Python packages from the Manjaro repositories, they will be automatically upgraded along with your Manjaro system's Python (generally referred to as "system python").
 
But if you have installed Python packages from elsewhere, they will not be upgraded automatically. This page is about upgrading packages that you installed from the AUR and/or from PyPI.
 
Packages that you installed are in directories named 'site-packages'.
* For system python at  /usr/lib/python3.9/site-packages/
* In your user-space at  ~/.local/lib/python3.9/site-packages/
* If you use virtual environments, each of those has a 'site-packages' directory.
 
==== Actions ====
 
===== pip =====
 
'''Before''' you upgrade system Python, get some info from pip, as you won't be able to get it after the upgrade.
 
'pip freeze' produces a list of packages that were installed with pip, which you can use later to install them again for the new version of python.
 
This gets packages installed by pip in system python:
sudo pip freeze > pip_list_sudo.txt
 
This gets packages installed by pip in your user space:
pip freeze --user > pip_list_user.txt
 
And this is a template for getting them from a virtual environment:
/path/to/<venv_name>/python -m pip freeze -l > pip_list_<venv_name>.txt
 
After the Python upgrade, the usual advice is to do something like
sudo pip install -r pip_list_sudo.txt
but don't do that, because:
* it's best not to install pip packages in system python;
* you might prefer not to re-install all of them;
* the list from 'pip freeze' includes version numbers, and you might want to manually install afresh to get current versions.
 
So a good course of action would be something like:
* edit the lists and remove whatever you don't want to re-install;
* for each package you want, check if it's available from the AUR, or the Manjaro repositories, and if it is, move it to another list, for installation from the other source;
* install each pip package manually, without a version number, without sudo, with '--user':
pip install <package_name> --user
 
===== AUR =====
 
You cannot prepare for this before the upgrade.
 
To get a list of packages to re-install, you will use
pacman -Qoq /usr/lib/python3.9
If you run this before the upgrade, it will list many packages that pacman will soon re-install for python 3.10
 
When you run it after the upgrade, it will get only the packages that did not get updated to 3.10, which will be those that you installed from the AUR.
 
Rebuilding of AUR packages can be done automatically,
with pikaur
pikaur -S $(pacman -Qoq /usr/lib/python3.9) --rebuild
or with yay
yay -S $(pacman -Qoq /usr/lib/python3.9) --answerclean All
 
It's possible that an AUR package has not been updated to Python 3.10 yet.
If so, the above commands might fail partway through,
and you'll have to rebuild the rest of the packages one or a few at a time.
 
 
=See Also=
 
[https://pip.pypa.io/en/stable/cli/ pip commands]

Latest revision as of 01:10, 22 May 2022

Moderator, please delete this page. The article was written here instead: https://forum.manjaro.org/t/when-python-has-its-annual-update-how-to-re-install-your-own-packages/97372

Cookies help us deliver our services. By using our services, you agree to our use of cookies.