Python-2.7.18
      
      
        
          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]](../images/note.png) 
          
            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-11.0
          platform.
        
        
          Package Information
        
        
        
          Additional Downloads
        
        
        
          Python 2 Dependencies
        
        
          Optional
        
        
          BlueZ-5.61
          and Valgrind-3.17.0
        
        
          Optional (For Additional Modules)
        
        
          SQLite-3.36.0 and Tk-8.6.11.1
        
        
          User 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.
        
        
          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 http://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 32bit 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 being phased out.
        
        
          --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
       
      
        
          Contents
        
        
          
            
              Installed Programs:
              pydoc, python2 (symlink), python2-config
              (symlink), python2.7, python2.7-config, smtpd.py, and
              idle
            
            
              Installed Library:
              libpython2.7.so
            
            
              Installed Directories:
              /usr/{include,lib}/python2.7 and
              /usr/share/doc/python-2.7.18
            
           
         
        
          
            Short Descriptions
          
          
            
              
              
            
            
              
                | 
                    idle
                   | 
                    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
                   | 
              
                | 
                    pydoc
                   | 
                    is the Python
                    documentation tool
                   | 
              
                | 
                    python2
                   | 
                    is an interpreted, interactive, object-oriented
                    programming language
                   | 
              
                | 
                    python2.7
                   | 
                    is a version-specific name for the python program
                   | 
              
                | 
                    smtpd.py
                   | 
                    is an SMTP proxy implemented in Python
                   | 
            
          
         
       
      
        Last updated on