Python-3.7.2

#### Beyond Linux® From Scratch - Version 2019-02-27

### Chapter 13. Programming

- Prev

  Python-2.7.15

- Next

  Python Modules

- Up
- Home

# Python-3.7.2

## Introduction to Python 3

The Python 3 package contains the Python development environment. This is useful for object-oriented programming, writing scripts, prototyping large programs or developing entire applications.

### Note

Python 3 was installed in LFS. The only reason to rebuild it here is if optional modules are needed.

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

### Package Information

- Download (HTTP): https://www.python.org/ftp/python/3.7.2/Python-3.7.2.tar.xz

- Download MD5 sum: df6ec36011808205beda239c72f947cb

- Download size: 16 MB

- Estimated disk space required: 337 MB (add 29 MB for tests)

- Estimated build time: 1.2 SBU (add 2.0 SBU for tests)

### Python 3 Dependencies

#### Optional

BlueZ-5.50, GDB-8.2.1 (required for some tests), Valgrind-3.14.0, and libmpcdec

#### Optional (For Additional Modules)

Berkeley DB-5.3.28 and SQLite-3.27.1

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

## Installation of Python 3

Install Python 3 by running the following commands:

    CXX="/usr/bin/g++"              \
    ./configure --prefix=/usr       \
                --enable-shared     \
                --with-system-expat \
                --with-system-ffi   \
                --with-ensurepip=yes &&
    make

The test suite must be run separately, using an X terminal (see below).

Now, as the `root` user:

    make install &&
    chmod -v 755 /usr/lib/libpython3.7m.so &&
    chmod -v 755 /usr/lib/libpython3.so

The test suite must be run separately from the build, either before or after the package is built and installed. Do not run make install after running the test suite. To build and install the package, you need to start with a fresh or clean source tree. For the tests, you also need a clean source code, so either start by removing the source code directory and starting over, by uncompressing the source tarball or by running make clean. Then configure again, adding “--with-pydebug” to the configure switches above, run make, then make test. Remember that tests must be executed using an X terminal. Two tests fail. The test SBU highly depends on the speed of the internet connection.

## Command Explanations

CXX="/usr/bin/g++" ./configure ...: Avoid an annoying message during configuration.

`--with-system-expat`: This switch enables linking against the system version of Expat.

`--with-system-ffi`: This switch enables linking against system version of libffi.

`--with-ensurepip=yes` : This switch enables building pip and setuptools packaging programs. setuptools is needed for building some Python modules.

`--with-dbmliborder=bdb:gdbm:ndbm`: Use this switch if you want to build Python DBM Module against Berkeley DB instead of GDBM.

chmod ...: Fix permissions for shared libraries to be consistent with other libraries.

## Configuring Python 3

In order for python3 to find the installed documentation, create the following version independent symlink:

    ln -svfn python-3.7.2 /usr/share/doc/python-3

and add the following environment variable to the individual user's or system's profile:

    export PYTHONDOCS=/usr/share/doc/python-3/html

## Contents

Installed Programs: 2to3 (symlink), 2to3-3.7, idle3 (symlink), and idle3.7 pydoc3 (symlink), pydoc3.7, python3 (symlink); python3.7 and python3.7m (hardlinked); python3-config (symlink), python3.7-config (symlink), python3.7m-config, pyvenv (symlink), pyvenv-3.7,
Installed Libraries: libpython3.7m.so and libpython3.so
Installed Directories: /usr/include/python3.7m, /usr/lib/python3.7, and /usr/share/doc/python-3.7.2

### Short Descriptions

idle3 | is a wrapper script that opens a Python aware GUI editor. For this script to run, you must have installed Tk before Python so that the Tkinter Python module is built.
pydoc3 | is the Python documentation tool.
python3 | is an interpreted, interactive, object-oriented programming language.
python3.7 | is a version-specific name for the python program.
pyvenv | creates virtual Python environments in one or more target directories.

Last updated on 2019-02-15 20:50:09 -0600

- Prev

  Python-2.7.15

- Next

  Python Modules

- Up
- Home