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.12

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.0 platform.

Package Information

D-Bus Python Dependencies

Required

dbus-1.12.16 and GLib-2.62.0

Recommended
Optional

tap.py (required for tests)

Optional (Required to build the API and HTML Documentation)

docutils-0.15 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.12 &&
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.12 &&
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.12 and /usr/lib/python2.7/site-packages/dbus and/or /usr/lib/python3.7/site-packages/dbus

docutils-0.15

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.0 platform.

Package Information

Docutils Dependencies

Optional

Python-2.7.16

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.7/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.0 platform.

Package Information

PyAtSpi2 Dependencies

Required

PyGObject-3.34.0

Recommended
Optional

Python-2.7.16

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.7/site-packages/pyatspi

PyCairo-1.18.1

Introduction to PyCairo Module

PyCairo provides Python bindings to Cairo.

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

Package Information

PyCairo Dependencies

Required

Cairo-1.16.0

Recommended
Optional

Hypothesis (for tests)

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

Installation of PyCairo

Install PyCairo for Python2 and Python3 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   &&
python2 setup.py install_pycairo_header &&
python2 setup.py install_pkgconfig      &&
python3 setup.py install --optimize=1   &&
python3 setup.py install_pycairo_header &&
python3 setup.py install_pkgconfig

Contents

Installed Programs: None
Installed Libraries: _cairo.so (python2) and _cairo.cpython-37m-x86_64-linux-gnu.so (python3)
Installed Directories: /usr/include/pycairo, /usr/lib/python2.7/site-packages/cairo /usr/lib/python2.7/site-packages/pycairo-1.18.1-py2.7.egg, /usr/lib/python3.7/site-packages/cairo , and /usr/lib/python3.7/site-packages/pycairo-1.18.1-py3.7.egg

PyCryptodome-3.9.0

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.0 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.0-py2.7.egg-info and/or pycryptodome-3.9.0-py3.7.egg-info
Installed Directories: /usr/lib/python2.7/site-packages/Crypto and/or /usr/lib/python3.7/site-packages/Crypto

Pygments-2.4.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.0 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.7/site-packages/Pygments-2.4.2-py3.7.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.0 platform.

Package Information

PyGObject Dependencies

Required

GLib-2.62.0, PyCairo-1.18.1 (Python 2), and Python-2.7.16

Optional

gobject-introspection-1.62.0 and libxslt-1.1.33 (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.33 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.0 platform.

Package Information

PyGObject3 Dependencies

Required

gobject-introspection-1.62.0 and PyCairo-1.18.1 (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.7/site-packages/gi/_gi{,_cairo}.cpython-37m-<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.7/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.0 platform.

Package Information

PyGTK Dependencies

Required

PyGObject-2.28.7 and Python-2.7.16

Required (atk module)

ATK-2.34.1

Required (pango module)

Pango-1.42.4

Required (pangocairo module)

PyCairo-1.18.1 (Python 2) and Pango-1.42.4

Required (gtk and gtk.unixprint modules)

PyCairo-1.18.1 (Python 2) and GTK+-2.24.32.

Required (gtk.glade module)

PyCairo-1.18.1 (Python 2) and libglade-2.6.4.

Optional

NumPy

Optional (to Build Documentation)

libxslt-1.1.33

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

Installation of PyGTK

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.33 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.0 platform.

Package Information

PyXDG Dependencies

Optional

Python-2.7.16

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.7/site-packages/xdg

libxml2-2.9.9 (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.9 and most packages in the book do not use these bindings for the older Python2.

By building these bindings after libxml2-2.9.9 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.0 platform.

Package Information

libxml2 (Python2) Dependencies

Required

libxml2-2.9.9 and Python-2.7.16

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.4.1

Introduction to lxml

lxml provides Python bindings for libxslt-1.1.33 and libxml2-2.9.9.

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

Package Information

lxml Dependencies

Required

libxslt-1.1.33

Recommended
Optional (to run more tests)

GDB-8.3, 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. Seven tests are known to fail due to a missing file.

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.4.1-py2.7-linux-$ARCH.egg-info and/or /usr/lib/python3.7/site-packages/lxml, /usr/lib/python3.7/site-packages/lxml-4.4.1-py3.7-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.0 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.7/site-packages/markupsafe and /usr/lib/python3.7/site-packages/MarkupSafe-1.1.1-py3.7.egg-info

Jinja2-2.10.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.0 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.10.1-py2.7.egg-info and/or /usr/lib/python3.7/site-packages/Jinja2, /usr/lib/python3.7/site-packages/Jinja2-2.10.1-py3.7.egg-info

Mako-1.1.0

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.0 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.7/site-packages/mako and /usr/lib/python3.7/site-packages/Mako-1.1.0-py3.7.egg-info

PyYAML-5.1.2

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.0 platform.

Package Information

PyYAML Dependencies

Required

libyaml-0.2.2

Optional

Python-2.7.16

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.7/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.0 platform.

Package Information

Scour Dependencies

Required

six-1.12.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.12.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.0 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.12.0-py2.7.egg and/or /usr/lib/python3.7/site-packages/six-1.12.0-py3.7.egg

Last updated on 2019-09-08 21:57:12 -0500