The Python module packages add useful objects to the Python language. Modules utilized by packages throughout SLFS are listed here, along with their dependencies.
In BLFS and SLFS, we normally build and install Python 3 modules with
pip3. Please take care that the
pip3 install commands in the book should be
run as root unless it's for a Python virtual environment. Running
pip3 install as a non-root user may seem to
work fine, but it will cause the installed module to be inaccessible by
other users.
pip3 install will not reinstall an already
installed module by default. For using the
pip3 install command to upgrade a module (for
example, from meson-0.61.3 to meson-0.62.0), insert
--upgrade into the command line. If it's really
necessary to downgrade a module or reinstall the same version for
some reason, insert --force-reinstall into
the command line.
The nvchecker module provides a solution for checking versions of packages. Arch Linux and other teams rely on this module for checking for updates to provide the latest software to their users.
Recommended patch for updcheck from lfs-tools: https://github.com/glfs-book/lfs-tools/raw/refs/heads/trunk/updcheck/nvchecker.diff
platformdirs-4.10.0, pycurl-7.46.0, structlog-26.1.0, and tornado-6.5.7
Git, libnotify, PyGObject, and toml-0.10.2
The recommended patch gives a longer delay to check against Repology. Repology and other sites of its ilk try to prevent bots from scraping data via a delay. This patch tries to adhere to Repology's limits. If you downloaded the recommended patch, apply it now:
patch -Np1 -i ../nvchecker.diff
Build the module:
pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD
Now, as the root user:
pip3 install --no-index --find-links=dist --no-cache-dir --no-user nvchecker
-w dist: Builds the appropriate
“wheel” for this module in the directory
dist.
--no-build-isolation: Tells
pip3 to run the build in the system environment
instead of creating a temporary build environment.
--no-deps: Prevents pip3 from
building wheels for the project's dependencies.
--no-index: Ignores the package index
(only looking at --find-links URLs instead).
--find-links dist: Looks for links to archives
such as wheel (.whl) files in the
directory dist.
--no-cache-dir: Disables the cache to prevent
a warning when installing as the root user.
--no-user: Prevent mistakenly running the
install command as a non-root user.
--upgrade: Upgrade the package to the newest
available version. This option is used with the install command
if a version of the package is already installed.
--force-reinstall: Reinstall the package even if
it is up-to-date. This option is used with the install command
if reinstalling the package or reverting to an earlier version
of the package.
--no-deps: Do not install package dependencies.
This option may be needed with the --upgrade or
--force-reinstall options.