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.3.8, pycurl-7.45.6, structlog-25.4.0, and tornado-6.5.1
Git, libnotify, PyGObject, and toml-0.10.2
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.