Introduction to Python 2
The Python 2 package contains the
Python development environment. It is useful
for object-oriented programming, writing scripts, prototyping large
programs or developing entire applications. This version is for backward
compatibility with other dependent packages.
Note
Python2 has been deprecated by the upstream developers.
Support for Python2 was discontinued on January 1st, 2020.
BLFS is attempting to use Python3 as much as possible, but some
packages have not been updated to support Python3.
Note
Development versions of BLFS may not build or run
some packages properly if LFS or dependencies have been updated
since the most recent stable versions of the books.
Package Information
Additional Downloads
Python 2 Dependencies
Recommended
SQLite-3.44.2 (For an additional module)
Optional
BlueZ-5.70 and
Valgrind-3.22.0
Optional (For more additional modules)
libnsl-2.0.1 and
Tk-8.6.13
Editor Notes: https://wiki.linuxfromscratch.org/blfs/wiki/Python
Installation of Python 2
First, disable the installation of a script that overwrites a more
recent script:
sed -i '/2to3/d' ./setup.py
Install Python 2 by running the following
commands:
patch -Np1 -i ../Python-2.7.18-security_fixes-1.patch &&
./configure --prefix=/usr \
--enable-shared \
--with-system-expat \
--with-system-ffi \
--enable-unicode=ucs4 &&
make
If you invoke the tests, they will run through twice.
To test the results, issue: make -k test.
Several tests are known to fail, including
test_ftplib
,
test_ssl
,
test_urllib2_localnet
,
test_xml_etree
,
test_xml_etree_c
, and
test_minidom
. These failures are due to
OpenSSL-3 and Expat-2.4.6.
Now, as the root
user:
make altinstall &&
ln -s python2.7 /usr/bin/python2 &&
ln -s python2.7-config /usr/bin/python2-config &&
chmod -v 755 /usr/lib/libpython2.7.so.1.0
Since Python 2 is in maintenance mode, and
Python 3 is recommended by upstream for
development, you probably do not need to install the documentation.
However, if you still want to install documentation for both
Python versions, be sure to define the
PYTHONDOCS
variable for the version you want to use, each time you need to consult
the documentation. If you have downloaded the preformatted documentation
from https://docs.python.org/download.html, install it
as the root
user:
install -v -dm755 /usr/share/doc/python-2.7.18 &&
tar --strip-components=1 \
--no-same-owner \
--directory /usr/share/doc/python-2.7.18 \
-xvf ../python-2.7.18-docs-html.tar.bz2 &&
find /usr/share/doc/python-2.7.18 -type d -exec chmod 0755 {} \; &&
find /usr/share/doc/python-2.7.18 -type f -exec chmod 0644 {} \;
Command Explanations
--with-system-expat
: This switch enables linking
against system version of Expat.
--with-system-ffi
: This switch enables linking
against system version of libffi.
--enable-unicode=ucs4
: This switch enables
32-bit Unicode support in Python.
--with-ensurepip=yes
: This switch enables building
pip and setuptools packaging programs.
setuptools is needed for building some Python modules.
This switch is not recommended because this version of Python is no longer
maintained.
--with-dbmliborder=bdb:gdbm:ndbm
: Use this switch
if you want to build Python DBM Module
against Berkeley DB instead of
GDBM.
make altinstall: This make target omits some default
symbolic links that may interfere with Python 3.
chmod ...: Fix permissions for libraries to be
consistent with other libraries.
Configuring Python 2
In order for python to find the installed
documentation, you must add the following environment variable to
individual user's or the system's profile:
export PYTHONDOCS=/usr/share/doc/python-2.7.18