8.52. Python-3.12.5

O pacote Python 3 contém o ambiente de desenvolvimento do Python. Ele é útil para programação orientada a objeto, escrita de scripts, prototipagem de aplicativos grandes e desenvolvimento de aplicações inteiras. Python é uma linguagem interpretada de computador.

Tempo aproximado de construção: 2,2 UPC
Espaço em disco exigido: 530 MB

8.52.1. Instalação do Python 3

Prepare o Python para compilação:

./configure --prefix=/usr       \
            --enable-shared      \
            --with-system-expat  \
            --enable-optimizations

O significado das opções do configure:

--with-system-expat

Essa chave habilita vinculação contra a versão de sistema do Expat.

--enable-optimizations

Essa chave habilita etapas extensivas, porém consumidoras de tempo, de otimização. O interpretador é construído duas vezes; testes realizados na primeira construção são usados para melhorar a versão otimizada final.

Compile o pacote:

make

Alguns testes são conhecidos por travarem, ocasionalmente, indefinidamente. Portanto, para testar os resultados, execute a suíte de teste, mas configure um limite de tempo de dois minutos para cada caso de teste:

make test TESTOPTS="--timeout 120"

Para um sistema relativamente lento, você possivelmente precise aumentar o limite de tempo e 1 UPC (medido ao construir a passagem 1 do Binutils com um elemento de processamento da CPU) deveria ser suficiente. Alguns testes são instáveis, de forma que a suíte de teste automaticamente reexecutará os testes falhos. Se um teste falhou, mas então passou quando reexecutado, ele deveria ser considerado como passado.

Instale o pacote:

make install

Nós usamos o comando pip3 para instalar os aplicativos e módulos do Python 3 para todos(as) os(as) usuários(as) como root em vários lugares neste livro. Isso conflita com a recomendação dos(as) desenvolvedores(as) do Python: instalar pacotes no ambiente virtual ou no diretório home de um(a) usuário(a) regular (executando pip3 como esse(a) usuário(a)). Um aviso multi linhas é deflagrado sempre que pip3 for emitido pelo(a) usuário(a) root.

A razão principal para a recomendação é para evitar conflitos com o gerenciador de pacote do sistema (dpkg, por exemplo). O LFS não tem um gerenciador de pacote abrangente ao sistema, de modo que isso não é um problema. Também, o pip3 verificará se existe uma nova versão dele próprio sempre for executado. Uma vez que a resolução de nome de domínio ainda não está configurada no ambiente chroot do LFS, o pip3 não consegue verificar se existe uma nova versão dele próprio e produzirá um aviso.

Depois que nós inicializarmos o sistema LFS e configurarmos uma conexão de rede de comunicação, um aviso diferente será emitido, informando para o(a) usuário(a) atualizar o pip3 a partir de uma roda pré-construída em PyPI (sempre que uma nova versão estiver disponível). Porém, o LFS considera que o pip3 é uma parte do Python 3, de forma que ele não deveria ser atualizado separadamente. Além disso, uma atualização a partir de uma roda pré-construída se desviaria do nosso objetivo: construir um sistema Linux a partir do código fonte. Assim, o aviso a respeito da nova versão do pip3 deveria ser ignorado também. Se desejar, você pode suprimir todos esses avisos executando o seguinte comando, o qual cria um arquivo de configuração:

cat > /etc/pip.conf << EOF
[global]
root-user-action = ignore
disable-pip-version-check = true
EOF
[Importante]

Importante

No LFS e no BLFS normalmente nós construímos e instalamos módulos do Python com o comando pip3. Por favor, tenha certeza de que os comandos pip3 install em ambos os livros sejam executados como o(a) usuário(a) root (a menos que seja para um ambiente virtual do Python). Executar um pip3 install como um(a) usuário(a) não root possivelmente aparente funcionar, porém causará o módulo instalado ficar inacessível por outros(as) usuários(as).

O pip3 install não reinstalará um módulo já instalado automaticamente. Quando usar o comando pip3 install para atualizar um módulo (por exemplo, de meson-0.61.3 para meson-0.62.0), insira a opção --upgrade na linha de comando. Se realmente for necessário desatualizar um módulo ou reinstalar a mesma versão por alguma razão, [então] insira --force-reinstall --no-deps na linha de comando.

Se desejado, então instale a documentação pré-formatada:

install -v -dm755 /usr/share/doc/python-3.12.5/html

tar --no-same-owner \
   -xvf ../python-3.12.5-docs-html.tar.bz2
cp -R --no-preserve=mode python-3.12.5-docs-html/* \
    /usr/share/doc/python-3.12.5/html

O significado dos comandos de instalação da documentação:

--no-same-owner ("tar") e --no-preserve=mode ("cp")

Garanta que os arquivos instalados tenham a titularidade de propriedade e as permissões corretas. Sem essas opções, o "tar" instalará os arquivos de pacote com os valores do(a) criador(a) desenvolvedor(a) e os arquivos teriam permissões restritivas.

8.52.2. Conteúdo do Python 3

Aplicativos instalados: 2to3, idle3, pip3, pydoc3, python3 e python3-config
Biblioteca instalada: libpython3.12.so e libpython3.so
Diretórios instalados: /usr/include/python3.12, /usr/lib/python3 e /usr/share/doc/python-3.12.5

Descrições Curtas

2to3

é um aplicativo Python que lê código fonte Python 2.x e aplica uma série de correções para transformá-lo em código Python 3.x válido

idle3

é um script encapsulador que abre um editor GUI ciente do Python. Para esse script executar, você precisa ter instalado Tk antes do Python, de forma que o módulo Tkinter do Python seja construído.

pip3

O instalador de pacote para Python. Você pode usar pip para instalar pacotes originários do Python Package Index e outros índices.

pydoc3

é a ferramenta de documentação do Python

python3

é o interpretador para o Python, uma linguagem de programação orientada a objeto, interativa e interpretada