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.
This package is known to build and work properly using an LFS 12.0
platform.
Package Information
Additional Downloads
Python 2 Dependencies
Recommended
SQLite-3.42.0 (For an additional module)
Optional
BlueZ-5.68
and Valgrind-3.21.0
Optional (For more additional modules)
libnsl-2.0.0 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