Glossário#
- Distribuição Binária#
Um tipo específico de Distribuição Construída que contém extensões compiladas.
- Backend de construção#
A library that takes a source tree and builds a source distribution or built distribution from it. The build is delegated to the backend by a frontend. All backends offer a standardized interface.
Exemplos de backends de construção são flit-core do flit, hatchling do hatch, Maturin, meson-python, scikit-build-core e Setuptools.
- Frontend de construção#
Uma ferramenta que os usuários podem executar que pega árvores de fontes arbitrárias ou distribuições fonte e constrói distribuições fontes ou wheels a partir delas. A construção real é delegada ao backend de construção de cada árvore de fontes.
- Distribuição Construída#
Um formato de Distribuição contendo arquivos e metadados que só precisam ser movidos para o local correto no sistema de destino, para serem instalados. Wheel é esse formato, enquanto o Distribuição Fonte não é, pois requer uma etapa de construção antes de poder ser instalado. Este formato não implica que os arquivos Python tenham que ser pré-compilados (Wheel intencionalmente não inclui arquivos Python compilados). Veja Formatos de Pacotes para mais informações.
- Built Metadata#
The concrete form Core Metadata takes when included inside an installed Project (
METADATA
file) or a Distribution Archive (PKG-INFO
in a Sdist andMETADATA
in a Wheel).- Core Metadata#
The specification and the set of Core Metadata Fields it defines that describe key static attributes of a Distribution Package or Installed Project.
- Core Metadata Field#
A single key-value pair (or sequence of such with the same name, for multiple-use fields) defined in the Core Metadata spec and stored in the Built Metadata. Notably, distinct from a Pyproject Metadata Key.
- Distribution Archive#
The physical distribution artifact (i.e. a file on disk) for a Distribution Package.
- Pacote de Distribuição#
Um arquivo com versão que contém pacotes Python, módulos, e outros arquivos de recursos que são usados para distribuir um Release (lançamento). O arquivo é o que um usuário final irá baixar da Internet e instalar.
Um pacote de distribuição é mais comumente referido com as palavras “pacote” ou “distribuição”, mas este guia pode usar o termo expandido quando mais clareza for necessária para evitar confusão com um Pacote de Importação (que também é comumente chamado de “pacote”) ou outro tipo de distribuição (por exemplo, uma distribuição Linux ou a distribuição da linguagem Python), que são frequentemente referidos com o único termo “distribuição”. Veja Pacote de distribuição vs. pacote de importação para uma explicação das diferenças.
- Egg#
Um formato de Distribuição Construída introduzido pelo Setuptools, que foi substituído pelo Wheel. Para detalhes, veja E quanto a eggs?.
- Módulo de Extensão#
Um Módulo escrito na linguagem de baixo nível da implementação Python: C/C++ para Python, Java para Jython. Normalmente contido em um único arquivo pré-compilado carregável dinamicamente, por exemplo, um arquivo de objeto compartilhado (.so) para extensões Python no Unix, uma DLL (dada a extensão .pyd) para extensões Python no Windows ou um arquivo de classe Java para extensões Jython.
- Known Good Set (KGS)#
Um conjunto de distribuições em versões especificadas que são compatíveis entre si. Normalmente, será executado um conjunto de testes que passa em todos os testes antes que um conjunto específico de pacotes seja declarado como um conjunto sabidamente bom (known good set). Este termo é comumente usado por frameworks e kits de ferramentas que são compostos de várias distribuições individuais.
- Pacote de Importação#
Um módulo Python que pode conter outros módulos ou recursivamente, outros pacotes.
Um pacote de importação é mais comumente referido com a palavra “pacote”, mas este guia usará o termo expandido quando mais clareza for necessária para evitar confusão com um Pacote de Distribuição que também é comumente chamado de “pacote” . Veja Pacote de distribuição vs. pacote de importação para uma explicação das diferenças.
- Installed Project#
A Project that is installed for use with a Python interpreter or Virtual Environment, as described in the specicifcation Gravando projetos instalados.
- Módulo#
A unidade básica de reutilização de código em Python, existindo em um dos dois tipos: Módulo Puro ou Módulo de Extensão.
- Índice de Pacotes#
Um repositório de distribuições com uma interface web para automatizar descoberta e consumo de pacotes.
- Índice Por Projeto#
Um Índice de Pacotes privado ou outro não canônico indicado por um Projeto específico como o índice preferido ou necessário para resolver dependências desse projeto.
- Projeto#
Uma biblioteca, estrutura, script, plugin, aplicação ou coleção de dados ou outros recursos, ou alguma combinação dos mesmos que se destina a ser empacotado em uma Distribuição.
Como a maioria dos projetos cria Distribuições usando
build-system
da PEP 518, distutils ou Setuptools, outra maneira prática de definir projetos atualmente é algo que contém um arquivo pyproject.toml, setup.py ou setup.cfg na raiz do diretório fonte do projeto.Projetos Python devem ter nomes únicos, que são registrados no PyPI. Cada projeto conterá então um ou mais Lançamentos, e cada lançamento pode incluir uma ou mais distribuições.
Observe que há uma forte convenção para dar o nome do projeto ao pacote que é importado para executar esse projeto. No entanto, isso não é obrigatório. É possível instalar uma distribuição do projeto “foo” e fazer com que ele forneça um pacote importável apenas como “bar”.
- Project Root Directory#
The filesystem directory in which a Project’s source tree is located.
- Project Source Tree#
The on-disk format of a Project used for development, containing its raw source code before being packaged into a Source Distribution or Built Distribution.
- Project Source Metadata#
Metadata defined by the package author in a Project’s source tree, to be transformed into Core Metadata fields in the Built Metadata by the project’s build backend. Can be written as Pyproject Metadata, or in a tool-specific format (under the
[tool]
table inpyproject.toml
, or in a tool’s own configuration file).- Módulo Puro#
Um Módulo escrito em Python e contido em um único arquivo
.py
(e possivelmente arquivos.pyc
e/ou.pyo
associados).- Pyproject Metadata#
The Project Source Metadata format defined by the Especificação do pyproject.toml specification and originally introduced in PEP 621, stored as Pyproject Metadata Keys under the
[project]
table of a pyproject.toml file. Notably, not a tool-specific source metadata format under the[tool]
table inpyproject.toml
.- Pyproject Metadata Key#
A top-level TOML key in the
[project]
table inpyproject.toml
; part of the Pyproject Metadata. Notably, distinct from a Core Metadata Field.- Pyproject Metadata Subkey#
A second-level TOML key under a table-valued Pyproject Metadata Key.
- Python Packaging Authority (PyPA)#
PyPA é um grupo de trabalho que mantém muitos dos projetos relevantes em pacotes Python. Eles mantêm um site em pypa.io, hospedam projetos no GitHub e Bitbucket, e discutem questões na lista de discussão distutils-sig e o fórum Discourse do Python.
- Python Package Index (PyPI)#
PyPI é o Índice de Pacotes padrão para a comunidade Python. Está aberto a todos os desenvolvedores Python para consumir e distribuir suas distribuições.
- pypi.org#
pypi.org é o nome de domínio do Python Package Index (PyPI). Ele substituiu o nome de domínio do índice legado,
pypi.python.org
, em 2017. Ele é tornado possível pelo Warehouse.- pyproject.toml#
O arquivo de especificação agnóstica de ferramenta para Projetos. Definido na PEP 518.
- Lançamento#
Um snapshot de um Projeto em um determinado ponto no tempo, denotado por um identificador de versão.
Fazer um lançamento pode implicar na publicação de várias Distribuições. Por exemplo, se a versão 1.0 de um projeto foi lançada, ele pode estar disponível em um formato de distribuição fonte e um formato de distribuição de instalador do Windows.
- Requisito#
Uma especificação para um pacote a ser instalado. pip, o instalador recomendado do PYPA, permite várias formas de especificação que podem ser consideradas um “requisito”. Para obter mais informações, consulte a referência de pip install.
- Especificador de Requisitos#
Um formato usado por pip para instalar pacotes de um Índice de Pacotes. Para um diagrama EBNF do formato, veja Especificadores de dependência. Por exemplo, “foo>=1.3” é um especificador de requisitos, onde “foo” é o nome do projeto e a parte “>=1.3” é o Especificador de Versão
- Arquivo de Requisitos#
Um arquivo contendo uma lista de Requisitos que podem ser instalados usando pip. Para mais informações, veja a documentação pip em Requirements Files.
- setup.py#
- setup.cfg#
Os arquivos de especificação do projeto para distutils e Setuptools. Veja também pyproject.toml.
- Arquivo Fonte#
Um arquivo contendo o código-fonte bruto para um Lançamento, antes da criação de uma Distribuição Fonte ou Distribuição Construída.
- Distribuição Fonte (ou “sdist”)#
A distribution format (usually generated using
python -m build --sdist
) that provides metadata and the essential source files needed for installing by a tool like pip, or for generating a Built Distribution. See Formatos de Pacotes for more information.- Pacote de Sistemas#
Um pacote fornecido em um formato nativo para o sistema operacional, por exemplo, um arquivo rpm ou dpkg.
- Especificador de Versão#
O componente de versão de um Especificador de Requisitos. Por exemplo, a parte “>=1.3” de “foo>=1.3”. Leia a especificação de especificador de versão para a especificação completa dos especificadores que o empacotamento do Python oferece suporte atualmente. O suporte para esta especificação foi implementado no Setuptools v8.0 e no pip v6.0.
- Ambiente Virtual#
Um ambiente Python isolado que permite que os pacotes sejam instalados para uso por uma aplicação específica, em vez de serem instalados em todo o sistema. Para obter mais informações, consulte a seção sobre Criando ambientes virtuais.
- Wheel Format#
- Wheel#
The standard Built Distribution format originally introduced in PEP 427 and defined by the Formato de distribuição binária specification. See Formatos de Pacotes for more information. Not to be confused with its reference implementation, the Wheel Project.
- Wheel Project#
The PyPA reference implementation of the Wheel Format; see wheel.
- Conjunto de Trabalho#
Uma coleção de distribuições disponíveis para importação. Estas são as distribuições que estão na variável
sys.path
. No máximo, uma Distribuição para um projeto é possível em um conjunto de trabalho.