Python Modules

Introduction to Python Modules

The Python module packages add useful objects to the Python language. Modules utilized by packages throughout BLFS are listed here, along with their dependencies.

D-Bus Python-1.2.16

Introduction to D-Bus Python Module

D-Bus Python provides Python bindings to the D-Bus API interface.

This package is known to build and work properly using an LFS-9.1 platform.

Package Information

D-Bus Python Dependencies

Required

dbus-1.12.16 and GLib-2.62.4

Recommended
Optional

PyGObject-3.34.0 and tap.py (required for some tests)

Optional (Required to build the API and HTML Documentation)

docutils-0.16 and Sphinx with sphinx_rtd_theme

User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/dbus-python

Installation of D-Bus Python

[Note]

Note

Both Python 2 and Python 3 modules can be built and installed without any conflicts.

To build D-Bus Python as the Python 2 module, run the following commands:

mkdir python2 &&
pushd python2 &&
PYTHON=/usr/bin/python2     \
../configure --prefix=/usr --docdir=/usr/share/doc/dbus-python-1.2.16 &&
make &&
popd

To test the results, issue: make -C python2 check. One test reports error due to dbus issues.

To build D-Bus Python as the Python 3 module, run the following commands:

mkdir python3 &&
pushd python3 &&
PYTHON=/usr/bin/python3    \
../configure --prefix=/usr --docdir=/usr/share/doc/dbus-python-1.2.16 &&
make &&
popd

To test the results, issue: make -C python3 check.

To install the Python 2 module, run the following command as the root user:

make -C python2 install

To install the Python 3 module, run the following command as the root user:

make -C python3 install

Contents

Installed Programs: None
Installed Libraries: None
Installed Directories: /usr/share/doc/dbus-python-1.2.16 and /usr/lib/python2.7/site-packages/dbus and/or /usr/lib/python3.8/site-packages/dbus

decorator-4.4.1

Introduction to decorator Module

The goal of the decorator module is to make it easy to define signature-preserving function decorators and decorator factories.

This package is known to build and work properly using an LFS-9.1 platform.

Package Information

User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/decorator

Installation of decorator

Install decorator with the following commands:

python3 setup.py build

This package does not come with a test suite.

To install the decorator package with the following command as the root user:

python3 setup.py install --optimize=1

Contents

Installed Programs: None
Installed Libraries: /usr/lib/python3.8/site-packages/decorator/decorator-4.4.1-py3.8.egg-info
Installed Directories: /usr/lib/python3.8/site-packages/decorator

docutils-0.16

Introduction to docutils

docutils is a set of Python modules and programs for processing plaintext docs into formats such as HTML, XML, or LaTeX.

This package is known to build and work properly using an LFS-9.1 platform.

Package Information

Docutils Dependencies

Optional

Python-2.7.17

User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/docutils

Installation of docutils

To build the Python 3 applications, run the following command:

python3 setup.py build

To install the Python applications run the following as the root user:

python3 setup.py install --optimize=1 &&

for f in /usr/bin/rst*.py; do
  ln -svf $(basename $f) /usr/bin/$(basename $f .py)
done

Contents

Installed Programs: rst2html4, rst2html5, rst2html, rst2latex, rst2man, rst2odt_prepstyles, rst2odt, rst2pseudoxml, rst2s5, rst2xetex, rst2xml, and rstpep2html
Installed Libraries: None
Installed Directories: /usr/lib/python3.8/site-packages/docutils

PyAtSpi2-2.34.0

Introduction to PyAtSpi2

The PyAtSpi2 package contains Python bindings for the core components of the GNOME Accessibility.

This package is known to build and work properly using an LFS-9.1 platform.

Package Information

PyAtSpi2 Dependencies

Required

PyGObject-3.34.0

Recommended
Optional

Python-2.7.17

User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/pyatspi2

Installation of PyAtSpi2

To build PyAtSpi2 as a Python 3 module, run the following commands:

./configure --prefix=/usr --with-python=/usr/bin/python3

This package does not come with a testsuite.

To install the Python 3 module, run the following command as the root user:

make install

Contents

Installed Programs: None
Installed Libraries: None
Installed Directories: /usr/lib/python2.7/site-packages/pyatspi and/or /usr/lib/python3.8/site-packages/pyatspi

PyCairo-1.19.0

Introduction to PyCairo Module

PyCairo provides Python bindings to Cairo.

This package is known to build and work properly using an LFS-9.1 platform.

Package Information

PyCairo Dependencies

Required

Cairo-1.17.2+f93fc72c03e

Optional

Hypothesis (for tests)

User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/pycairo

Installation of PyCairo

[Note]

Note

The current version of pycairo no longer builds the Python2 module. If you need that module for packages sych as Gimp-2.10.18, use PyCairo-1.18.2

Install PyCairo for Python3 by running the following commands:

python3 setup.py build

This package does not come with a test suite.

Now, as the root user:

python3 setup.py install --optimize=1   &&
python3 setup.py install_pycairo_header &&
python3 setup.py install_pkgconfig

Contents

Installed Program: None
Installed Library: _cairo.cpython-38m-x86_64-linux-gnu.so
Installed Directories: /usr/include/pycairo, and /usr/lib/python3.8/site-packages/pycairo-1.19.0-py3.8.egg

PyCairo-1.18.2

Introduction to PyCairo for Python2 Module

This version of PyCairo provides Python2 bindings to Cairo.

This package is known to build and work properly using an LFS-9.1 platform.

Package Information

PyCairo Dependencies

Required

Cairo-1.17.2+f93fc72c03e, Python-2.7.17

Optional

Hypothesis (for tests)

User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/pycairo

Installation of PyCairo

[Note]

Note

This version of PyCairo is only retained for packages such as Gimp-2.10.18 which is stuck on Python2 until Gimp-3 is released.

Install PyCairo for Python2 by running the following commands:

python2 setup.py build

This package does not come with a test suite.

Now, as the root user:

python2 setup.py install --optimize=1   &&
python2 setup.py install_pycairo_header &&
python2 setup.py install_pkgconfig

Contents

Installed Program: None
Installed Library: _cairo.so
Installed Directories: /usr/include/pycairo, /usr/lib/python2.7/site-packages/cairo, /usr/lib/python2.7/site-packages/pycairo-1.18.2-py2.7.egg,

PyCryptodome-3.9.6

Introduction to the PyCryptodome Module

PyCryptodome is a collection of both secure hash functions (such as SHA256 and RIPEMD160), and various encryption algorithms (AES, DES, RSA, ElGamal, etc.), and is a drop-in replacement for PyCrypto.

This package is known to build and work properly using an LFS-9.1 platform.

Package Information

PyCryptodome Dependencies

Recommended

User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/pycryptodome

Installation of PyCryptodome

[Note]

Note

Both Python 2 and Python 3 modules can be built and installed without any conflicts.

To build the Python 2 and Python 3 modules, run the following commands:

python2 setup.py build &&
python3 setup.py build

To install both modules, run the following commands as the root user:

python2 setup.py install --optimize=1 &&
python3 setup.py install --optimize=1

Contents

Installed Programs: None
Installed Libraries: pycryptodome-3.9.6-py2.7.egg-info and/or pycryptodome-3.9.6-py3.8.egg-info
Installed Directories: /usr/lib/python2.7/site-packages/Crypto and/or /usr/lib/python3.8/site-packages/Crypto

dbusmock-0.19

Introduction to dbusmock

dbusmock a Python library useful for writing tests for software which talks to D-Bus services.

This package is known to build and work properly using an LFS-9.1 platform.

Package Information

User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/dbusmock

Installation of dbusmock

Build the package with:

python3 setup.py build

To install the package run the following as the root user:

python3 setup.py install --optimize=1

Contents

Installed Programs: None
Installed Libraries: python_dbusmock-0.19-py3.8.egg
Installed Directories: None

Pygments-2.5.2

Introduction to Pygments Module

Pygments is a general syntax highlighter written in Python, for more than 300 languages.

This package is known to build and work properly using an LFS-9.1 platform.

Package Information

User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/pygments

Installation of Pygments

Build and install the Python 3 module by running the following commands as the root user:

python3 setup.py install --optimize=1

Contents

Installed Programs: pygmentize
Installed Library: None
Installed Directories: /usr/lib/python3.8/site-packages/Pygments-2.5.2-py3.8.egg

PyGObject-2.28.7

Introduction to PyGObject Module

PyGObject-2.28.7 provides Python 2 bindings to the GObject class from GLib.

This package is known to build and work properly using an LFS-9.1 platform.

Package Information

PyGObject Dependencies

Required

GLib-2.62.4, PyCairo-1.18.2 and Python-2.7.17

Optional

gobject-introspection-1.62.0 and libxslt-1.1.34 (to Build Documentation)

User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/pygobject2

Installation of PyGObject

Install PyGObject by running the following commands:

./configure --prefix=/usr --disable-introspection &&
make

This package does not have a working testsuite.

Now, as the root user:

make install

Command Explanations

--disable-introspection: Omit this switch if you have installed gobject-introspection-1.62.0. Note that it conflicts with PyGObject-3.34.0.

--disable-docs: This option disables the rebuilding of the html documentation if libxslt-1.1.34 is installed.

Contents

Installed Programs: pygobject-codegen-2.0
Installed Libraries: libpyglib-2.0-python.so, _gio.so, unix.so, _glib.so and _gobject.so.
Installed Directories: /usr/include/pygtk-2.0, /usr/lib/python2.7/site-packages/gtk-2.0/{gio,glib,gobject}, /usr/share/gtk-doc/html/pygobject and /usr/share/pygobject/2.0

PyGObject-3.34.0

Introduction to PyGObject3 Module

PyGObject3 provides Python bindings to the GObject class from GLib.

This package is known to build and work properly using an LFS-9.1 platform.

Package Information

PyGObject3 Dependencies

Required

gobject-introspection-1.62.0 and PyCairo-1.19.0 (Python 3 module)

Recommended
Optional (for the tests)

pep8, pyflakes, and pytest

User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/pygobject3

Installation of PyGObject3

[Note]

Note

Both Python 2 and Python 3 modules can be built and installed without any conflicts.

To build PyGObject3 as a Python 2 module, run the following commands:

mkdir python2                           &&
pushd python2                           &&
meson --prefix=/usr -Dpython=python2 .. &&
ninja                                   &&
popd

To test the results, issue: ninja -C python2 test. An already active graphical session with bus address is necessary to run the tests. Two tests fail due to a search for GTK+-4, which has not been released yet.

To build PyGObject3 as a Python 3 module, run the following commands:

mkdir python3                           &&
pushd python3                           &&
meson --prefix=/usr -Dpython=python3 .. &&
ninja                                   &&
popd

To test the results, issue: ninja -C python3 test. An already active graphical session with bus address is necessary to run the tests. Two tests fail due to a search for GTK+-4, which has not been released yet.

To install the Python 2 module, run the following command as the root user:

ninja -C python2 install

To install the Python 3 module, run the following command as the root user:

ninja -C python3 install

Contents

Installed Programs: None
Installed Library: /usr/lib/python2.7/site-packages/gi/_gi{,_cairo}.so and/or /usr/lib/python3.8/site-packages/gi/_gi{,_cairo}.cpython-38m-<arch>-linux-gnu.so
Installed Directories: /usr/include/pygobject-3.0, and /usr/lib/python2.7/site-packages/{gi,pygtkcompat} and/or /usr/lib/python3.8/site-packages/{gi,pygtkcompat}

PyGTK-2.24.0

Introduction to PyGTK Module

PyGTK lets you to easily create programs with a graphical user interface using the Python programming language.

This package is known to build and work properly using an LFS-9.1 platform.

Package Information

PyGTK Dependencies

Required

PyGObject-2.28.7 and Python-2.7.17

Required (atk module)

ATK-2.34.1

Required (pango module)

Pango-1.44.7

Required (pangocairo module)

PyCairo-1.18.2 and Pango-1.44.7

Required (gtk and gtk.unixprint modules)

PyCairo-1.18.2 and GTK+-2.24.32.

Required (gtk.glade module)

PyCairo-1.18.2 and libglade-2.6.4.

Optional

NumPy

Optional (to Build Documentation)

libxslt-1.1.34

User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/pygtk

Installation of PyGTK

First, adapt PyGTK to changes in Pango by removing undefined APIs:

sed -i '1394,1402 d' pango.defs

Install PyGTK by running the following commands:

./configure --prefix=/usr &&
make

The tests must be run from an active X display. If this is so, issue: make check.

Now, as the root user:

make install

Command Explanations

--enable-docs: This option enables rebuilding the html documentation if libxslt-1.1.34 is installed.

Contents

Installed Programs: pygtk-codegen-2.0 and pygtk-demo.
Installed Libraries: atk.so, _gtk.so, glade.so, gtkunixprint.so, pango.so and pangocairo.so.
Installed Directories: /usr/include/pygtk-2.0, /usr/lib/pygtk, /usr/lib/python2.7/site-packages/gtk-2.0, /usr/share/gtk-doc/html/pygtk and /usr/share/pygtk.

Short Descriptions

pygtk-codegen-2.0

is a wrapper script to run the PyGTK codegen module.

pygtk-demo

is a Python wrapper to run the PyGTK demo program.

PyXDG-0.25

Introduction to PyXDG Module

PyXDG is a Python library to access freedesktop.org standards.

This package is known to build and work properly using an LFS-9.1 platform.

Package Information

PyXDG Dependencies

Optional

Python-2.7.17

User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/pyxdg

Installation of PyXDG

To install the module, run the following command as the root user:

python3 setup.py install --optimize=1

Contents

Installed Directory: /usr/lib/python3.8/site-packages/xdg

libxml2-2.9.10 (for its Python2 module)

Introduction to the libxml2 Python2 module

These instructions provide the Python2 bindings for libxml2: the Python3 bindings are built as part of libxml2-2.9.10 and most packages in the book do not use these bindings for the older Python2.

By building these bindings after libxml2-2.9.10 has been installed, there is no need to rebuild the time-consuming (if all dependencies are used) main part of that package.

This package is known to build and work properly using an LFS-9.1 platform.

Package Information

libxml2 (Python2) Dependencies

Required

libxml2-2.9.10 and Python-2.7.17

User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/libxml2

Installation of libxml2 Python2 module

To build the Python 2 module, run:

cd python             &&
python2 setup.py build

To install the Python 2 module, as the root user run:

python2 setup.py install --optimize=1

Contents

Installed Programs: drv_libxml2.py, libxml2.py
Installed Libraries: libxml2mod.so
Installed Directories: None

Short Descriptions

drv_libxml2.py

is a SAX Python2 driver for libxml2.

libxml2.py

is the Python2 binding for libxml2.

libxml2mod.so

is the interface for Python2 to use libxml2.so.

lxml-4.5.0

Introduction to lxml

lxml provides Python bindings for libxslt-1.1.34 and libxml2-2.9.10.

This package is known to build and work properly using an LFS-9.1 platform.

Package Information

lxml Dependencies

Required

libxslt-1.1.34

Recommended
Optional (to run more tests)

GDB-9.1, Valgrind-3.15.0, and cssselect

User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/lxml

Installation of lxml

[Note]

Note

Both Python 2 and Python 3 modules can be built and installed without any conflicts.

To build both Python 2 and Python 3 modules, run:

python2 setup.py build &&
python3 setup.py build

If you wish to run the tests, enter: make PYTHON=python2 test and make PYTHON=python3 test. This will rebuild the package for inplace use before running the tests.

To install both modules, issue the following commands as the root user:

python2 setup.py install --optimize=1 &&
python3 setup.py install --optimize=1

Contents

Installed Programs: None
Installed Libraries: None
Installed Directories: /usr/lib/python2.7/site-packages/lxml, /usr/lib/python2.7/site-packages/lxml-4.5.0-py2.7-linux-$ARCH.egg-info and/or /usr/lib/python3.8/site-packages/lxml, /usr/lib/python3.8/site-packages/lxml-4.5.0-py3.8-linux-$ARCH.egg-info

MarkupSafe-1.1.1

Introduction to MarkupSafe Module

MarkupSafe is a Python module that implements a XML/HTML/XHTML Markup safe string.

This package is known to build and work properly using an LFS-9.1 platform.

Package Information

User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/MarkupSafe

Installation of MarkupSafe

[Note]

Note

Both Python 2 and Python 3 modules can be built and installed without any conflicts.

To build both Python 2 and Python 3 modules, run the following commands:

python2 setup.py build &&
python3 setup.py build

To install both modules, run the following commands as the root user:

python2 setup.py install --optimize=1 &&
python3 setup.py install --optimize=1

Contents

Installed Programs: None
Installed Libraries: None
Installed Directories: /usr/lib/python3.8/site-packages/markupsafe and /usr/lib/python3.8/site-packages/MarkupSafe-1.1.1-py3.8.egg-info

Jinja2-2.11.1

Introduction to Jinja2 Module

Jinja2 is a Python module that implements a simple pythonic template language.

This package is known to build and work properly using an LFS-9.1 platform.

Package Information

Jinja2 Dependencies

Required

MarkupSafe-1.1.1

User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/Jinja2

Installation of Jinja2

[Note]

Note

Both Python 2 and Python 3 modules can be built and installed without any conflicts.

To install the Python 2 module, run the following command as the root user:

python2 setup.py install --optimize=1

To install the Python 3 module, run the following command as the root user:

python3 setup.py install --optimize=1

Contents

Installed Programs: None
Installed Libraries: None
Installed Directories: /usr/lib/python2.7/site-packages/Jinja2, /usr/lib/python2.7/site-packages/Jinja2-2.11.1-py2.7.egg-info and/or /usr/lib/python3.8/site-packages/Jinja2, /usr/lib/python3.8/site-packages/Jinja2-2.11.1-py3.8.egg-info

Mako-1.1.1

Introduction to Mako Module

Mako is a Python module that implements hyperfast and lightweight templating for the Python platform.

This package is known to build and work properly using an LFS-9.1 platform.

Package Information

Mako Dependencies

Required

MarkupSafe-1.1.1

User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/Mako

Installation of Mako

To install the Python 3 module, run the following command as the root user:

python3 setup.py install --optimize=1

Contents

Installed Programs: mako-render3
Installed Libraries: None
Installed Directories: /usr/lib/python3.8/site-packages/mako and /usr/lib/python3.8/site-packages/Mako-1.1.1-py3.8.egg-info

python-slip-0.6.5

Introduction to python-slip Module

python-slip provides convenience, extension and workaround code for Python and some Python modules.

This package is known to build and work properly using an LFS-9.1 platform.

Package Information

python-slip Dependencies

Required

D-Bus Python-1.2.16, decorator-4.4.1, and six-1.14.0

User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/python-slip

Installation of python-slip

To build the python-slip module, run the following commands:

sed 's/@VERSION@/0.6.5/' setup.py.in > setup.py &&
python3 setup.py build

To install the python-slip module, run the following command as the root user:

python3 setup.py install --optimize=1

Contents

Installed Programs: None
Installed Libraries: usr/lib/python3.8/site-packages/python-slip-0.6.5-py3.8.egg-info and usr/lib/python3.8/site-packages/python-slip.dbus-0.6.5-py3.8.egg-info
Installed Directories: /usr/lib/python3.8/site-packages/python-slip

PyYAML-5.3

Introduction to PyYAML Module

PyYAML is a Python module that implements the next generation YAML parser and emitter.

This package is known to build and work properly using an LFS-9.1 platform.

Package Information

PyYAML Dependencies

Required

libyaml-0.2.2

Optional

Python-2.7.17

User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/PyYAML

Installation of PyYAML

[Note]

Note

Both Python 2 and Python 3 modules can be built and installed without any conflicts.

To build both Python 2 and Python 3 modules, run the following commands:

python2 setup.py build &&
python3 setup.py build

To install both modules, run the following commands as the root user:

python2 setup.py install --optimize=1 &&
python3 setup.py install --optimize=1

Contents

Installed Programs: None
Installed Libraries: _yaml.so
Installed Directories: /usr/lib/python2.7/site-packages/yaml and/or /usr/lib/python3.8/site-packages/yaml

Scour-0.37

Introduction to Scour

Scour is an SVG (Scalable Vector Graphics) optimizer/cleaner that reduces their size by optimizing structure and removing unnecessary data.

This package is known to build and work properly using an LFS-9.1 platform.

Package Information

Scour Dependencies

Required

six-1.14.0 (will be automatically downloaded and installed if not already present)

Recommended
[Note]

Note

The only use of Scour in this book is by applications which require Python2.

User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/scour

Installation of scour

[Note]

Note

Both Python 2 and Python 3 modules can be built and installed without any conflicts.

To build both Python 2 and Python 3 modules, run the following commands:

python2 setup.py build &&
python3 setup.py build

To partially test the results, issue: python2 testcss.py. If you have installed Six you can run the main tests by issuing: python2 testscour.py.

To install both modules, run the following command as the root user:

python2 setup.py install --optimize=1 &&
python3 setup.py install --optimize=1

Contents

Installed Programs: scour
Installed Libraries: None
Installed Directories: None

Short Descriptions

scour

is a program to optimize and clean SVG files.

six-1.14.0

Introduction to Six Module

Six is a Python 2 and 3 compatibility library.

This package is known to build and work properly using an LFS-9.1 platform.

Package Information

Six Dependencies

Recommended Dependencies

User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/six

Installation of six

[Note]

Note

Both Python 2 and Python 3 modules can be built and installed without any conflicts.

Install six for Python 2 and Python 3 by running the following commands:

python2 setup.py build &&
python3 setup.py build

This package does not come with a test suite.

Now, as the root user:

python2 setup.py install --optimize=1 &&
python3 setup.py install --optimize=1

Contents

Installed Programs: None
Installed Libraries: None
Installed Directories: /usr/lib/python2.7/site-packages/six-1.14.0-py2.7.egg and/or /usr/lib/python3.8/site-packages/six-1.14.0-py3.8.egg

Last updated on 2020-02-13 15:23:59 -0800