Python-3.12.5

Introdução ao Python 3

O pacote Python 3 contém o ambiente de desenvolvimento Python. Isso é útil para programação orientada a objetos, escrita de conjuntos sequenciais de comandos, prototipagem de aplicativos grandes ou desenvolvimento de aplicativos inteiros.

[Nota]

Nota

O Python 3 foi instalado no LFS. A única razão para reconstruí-lo aqui é se módulos opcionais forem necessários ou para atualizar esse pacote.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.2.

[Importante]

Importante

Se atualizar para uma nova versão secundária do Python-3 (por exemplo, de Python-3.11.x para Python-3.12.0), você precisará reinstalar quaisquer módulos do Python3 que tiver instalado. Você também deveria reinstalar pacotes que geram módulos do Python3, incluindo GLib-2.80.4 (com GObject Introspection), libxml2-2.13.3, opencv-4.10.0, FontForge-20230101, gnome-tweaks-46.1, Samba-4.20.4 e Graphviz-12.1.0 (se swig estiver instalado).

Antes de atualizar, você pode obter uma lista de módulos instalados com pip3 list. A lista pode estar incompleta porque alguns módulos Python não são instalados com pip3, por exemplo o módulo cracklib instalado por CrackLib-2.10.2. Use ls /usr/lib/python3.minor/site-packages para uma lista abrangente.

Os módulos Python oriundos do LFS também terão que ser reinstalados: flit-core, wheel, setuptools, meson, MarkupSafe e Jinja2.

Informação do Pacote

  • Transferência (HTTP): https://www.python.org/ftp/python/3.12.5/Python-3.12.5.tar.xz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 02c7d269e077f4034963bba6befdc715

  • Tamanho da transferência: 19 MB

  • Espaço em disco estimado exigido: 335 MB (adicionar 59 MB para os testes)

  • Tempo de construção estimado: 1,6 UPC (adicionar 0,6 UPC para testes; ambos usando paralelismo=4)

Transferência Adicional Opcional

Dependências do "Python" 3

Recomendadas

Opcionais

BlueZ-5.77, GDB-15.1 (exigido para alguns testes), Valgrind-3.23.0 e libmpdec

Opcionais (Para Módulos Adicionais)

libnsl-2.0.1, Tk-8.6.14 e Berkeley DB (obsoleto)

Observações de Editor(a): https://wiki.linuxfromscratch.org/blfs/wiki/Python3

Instalação do Python 3

Instale o "Python 3" executando os seguintes comandos:

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

Alguns testes são conhecidos por travarem ocasional e indefinidamente. Portanto, para testar os resultados, execute a suíte de teste, porém configure um limite de tempo de 2 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 Binutils a passagem 1 com um núcleo de CPU) deveria ser suficiente. Alguns testes são instáveis, de forma que a suíte de teste automaticamente reexecutará testes falhos. Se um teste falhou, porém a seguir passou quando reexecutado, ele deveria ser considerado como passado.

Dos mais de quarenta e dois mil (42.000) testes, os seguintes são conhecidos por falharem: test__xxsubinterpreters, test_import, test_interpreters e test_threading.

Agora, como o(a) usuário(a) "root":

make install

Se atualizar e a documentação tiver sido baixada, [então] opcionalmente instale-a como o(a) usuário(a) "root":

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

tar --strip-components=1 \
    --no-same-owner       \
    --no-same-permissions \
    -C /usr/share/doc/python-3.12.5/html \
    -xvf ../python-3.12.5-docs-html.tar.bz2

Explicações do Comando

CXX="/usr/bin/g++" ./configure ...: Evite uma mensagem irritante durante a configuração.

--with-system-expat: Essa chave habilita vinculação à versão do sistema do Expat.

--enable-optimizations: Essa chave habilita otimizações estáveis, mas caras.

--with-lto: Essa chave opcional habilita "Link Time Optimization" denso. Excepcionalmente, ele cria um "/usr/lib/python3.12/config-3.12-<arch>-linux-gnu/libpython3.12.a" muito maior com um pequeno aumento no tempo para compilar o "Python". Os resultados em tempo de execução não parecem mostrar nenhum benefício advindo de fazer isso.

Configurando o Python 3

Para a finalidade de que "python3" encontre a documentação instalada, crie o seguinte link simbólico independente da versão:

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

e adicione a seguinte variável de ambiente ao perfil individual do(a) usuário(a) ou ao do sistema:

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

Conteúdo

Aplicativos Instalados: 2to3 (link simbólico) e 2to3-3.12, idle3 (link simbólico) e idle3.12, pip3 e pip3.12, pydoc3 (link simbólico) e pydoc3.12, python3 (link simbólico) e python3.12, e python3-config (link simbólico) e python3.12-config
Bibliotecas Instaladas: libpython3.12.so e libpython3.so
Diretórios Instalados: /usr/include/python3.12, /usr/lib/python3.12 e /usr/share/doc/python-3.12.5

Descrições Curtas

idle3

é um conjunto sequencial de comandos envólucros que abrem um editor "GUI" compatível com "Python". Para esse conjunto sequencial de comandos executar, você precisa ter instalado o "Tk" antes do "Python", de forma que o módulo "Tkinter" do "Python" seja construído

pydoc3

é a ferramenta de documentação do "Python"

python3

é uma linguagem de programação interpretada, interativa e orientada a objetos

python3.12

é um nome específico da versão para o programa python