2. Utilizando Python em plataformas Unix

2.1. Obtendo e instalando a versão mais recente do Python

2.1.1. No Linux

O Python vem pré-instalado na maioria das distribuições Linux e está disponível como um pacote em todos as outras. No entanto, existem certos recursos que podemos querer utilizar e que não estão disponíveis no pacote da sua distro. Poderás compilar facilmente a versão mais recente do Python desde a origem.

Nas situações em que o Python não vier pré-instalado e também não estiver nos repositórios, poderás facilmente gerar os pacotes para a sua distro. Veja os seguintes links:

2.1.2. On FreeBSD e OpenBSD

  • usuários do FreeBSD, para adicionar a utilização do pacote utilize:

    pkg install python3
    
  • Usuários do OpenBSD, para adicionar pacotes use:

    pkg_add -r python
    
    pkg_add ftp://ftp.openbsd.org/pub/OpenBSD/4.2/packages/<insert your architecture here>/python-<version>.tgz
    

    Por exemplo, usuários i386 podem pegar a versão 2.5.1 do Python usando o comando:

    pkg_add ftp://ftp.openbsd.org/pub/OpenBSD/4.2/packages/i386/python-2.5.1p2.tgz
    

2.1.3. No OpenSolaris

Podes baixar o Python desde OpenCSW. Várias versões do Python estão disponíveis e poderás instala-las, por exemplo pkgutil -i python27.

2.2. Compilando o Python

Se você quer compilar o CPython, a primeira coisa que você precisa fazer é baixar o código-fonte. Você pode baixar a última versão ou usar o git para fazer um clone. (Se você pretende contribuir modificações, você vai precisar um “clone”.)

O processo de compilação consiste nos comandos usuais:

./configure
make
make install

Configuration options and caveats for specific Unix platforms are extensively documented in the README.rst file in the root of the Python source tree.

Aviso

make install pode sobrescrever ou mascarar o arquivo binário python3. make altinstall é, portanto, recomendado ao invés de make install uma vez que o mesmo apenas instala o arquivo exec_prefix/bin/pythonversion.

2.4. Diversos

Para usar facilmente scripts Python no Unix, você precisa torná-los executáveis, por exemplo, com

$ chmod +x script

e colocar uma linha Shebang apropriada no topo do script. Uma boa escolha normalmente é

#!/usr/bin/env python3

que procura o interpretador do Python no conjunto PATH. No entanto, alguns sistemas Unix podem não ter o comando env, então você pode precisar codificar /usr/bin/python3 como o caminho do interpretador.

Para usar comandos Shell em seus scripts Python, veja o módulo subprocess.

2.5. Custom OpenSSL

  1. To use your vendor’s OpenSSL configuration and system trust store, locate the directory with openssl.cnf file or symlink in /etc. On most distribution the file is either in /etc/ssl or /etc/pki/tls. The directory should also contain a cert.pem file and/or a certs directory.

    $ find /etc/ -name openssl.cnf -printf "%h\n"
    /etc/ssl
    
  2. Download, build, and install OpenSSL. Make sure you use install_sw and not install. The install_sw target does not override openssl.cnf.

    $ curl -O https://www.openssl.org/source/openssl-VERSION.tar.gz
       $ tar xzf openssl-VERSION
       $ pushd openssl-VERSION
       $ ./config \
            --prefix=/usr/local/custom-openssl \
            --libdir=lib \
            --openssldir=/etc/ssl
       $ make -j1 depend
       $ make -j8
       $ make install_sw
       $ popd
    
  3. Build Python with custom OpenSSL (see the configure –with-openssl and –with-openssl-rpath options)

    $ pushd python-3.x.x
    $ ./configure -C \
        --with-openssl=/usr/local/custom-openssl \
        --with-openssl-rpath=auto \
        --prefix=/usr/local/python-3.x.x
    $ make -j8
    $ make altinstall
    

Nota

Patch releases of OpenSSL have a backwards compatible ABI. You don’t need to recompile Python to update OpenSSL. It’s sufficient to replace the custom OpenSSL installation with a newer version.