Empacotamento Python

PythonBeginner
Pratique Agora

Introdução

Este laboratório apresenta o script setup.py, um componente fundamental para empacotar projetos Python usando a biblioteca tradicional Distutils. Você aprenderá seu propósito, estrutura e como usá-lo para tornar seus módulos Python instaláveis. Ao final deste laboratório, você terá criado um arquivo setup.py básico e o utilizado para instalar um pacote Python simples.

Introdução

Nesta etapa, você entenderá o papel do script setup.py como o centro de toda a atividade na construção, distribuição e instalação de módulos com Distutils.

O script de configuração (setup script) é o núcleo da construção, distribuição e instalação de módulos usando Distutils. Seu principal objetivo é descrever sua distribuição de módulo para o Distutils, para que os vários comandos que operam em seus módulos façam a coisa certa.

O arquivo setup.py está no coração de um projeto Python. Ele descreve todos os metadados sobre o seu projeto. Embora existam muitos campos que você pode adicionar para fornecer metadados ricos, apenas três são obrigatórios:

  • name: O nome do seu pacote. Este deve ser único se você deseja publicar seu pacote no Python Package Index (PyPI).
  • version: A versão atual do seu pacote. Isso ajuda os usuários a distinguir entre diferentes lançamentos.
  • packages: Uma lista de todos os pacotes Python a serem incluídos em sua distribuição.

Depois de ter um arquivo setup.py, você pode facilmente instalar o pacote Python em seu ambiente. A maneira recomendada é usar o pip para instalar o pacote a partir do diretório atual. Execute o seguinte comando no seu terminal, a partir do mesmo diretório do arquivo setup.py:

pip install .

Este comando cuidará do processo de construção e instalação do módulo para que ele possa ser importado e usado em outros scripts Python. Na próxima etapa, criaremos um arquivo setup.py e executaremos este comando.

Exemplo

Nesta etapa, revisaremos um exemplo básico de um script setup.py e criaremos um para o nosso projeto. Este exemplo incluirá os campos obrigatórios, bem como informações opcionais como a licença e uma descrição longa lida de um arquivo README.txt.

Primeiro, navegue até o diretório do projeto que foi preparado para você. Use o explorador de arquivos no lado esquerdo do IDE para ver o diretório pythonCheatsheet. Dentro dele, você encontrará um subdiretório pipenv e um arquivo README.txt.

Agora, crie um novo arquivo chamado setup.py dentro do diretório ~/project/pythonCheatsheet. Clique na pasta pythonCheatsheet no explorador de arquivos, depois clique no ícone "New File" (Novo Arquivo) e nomeie-o como setup.py.

Copie e cole o código a seguir no seu arquivo setup.py recém-criado:

## setup.py: define package metadata for distribution
from distutils.core import setup

setup(
   name='pythonCheatsheet',  ## Package name (must be unique on PyPI)
   version='0.1',  ## Version number
   packages=['pipenv',],  ## List of packages to include
   license='MIT',  ## License type
   long_description=open('README.txt').read(),  ## Read description from file
)

Vamos analisar este script:

  • from distutils.core import setup: Esta linha importa a função setup, que é o principal ponto de entrada para o script.
  • name='pythonCheatsheet': Define o nome do nosso pacote.
  • version='0.1': Define a versão inicial.
  • packages=['pipenv',]: Informa ao Distutils que o pacote a ser incluído está no diretório pipenv.
  • license='MIT': Especifica a licença sob a qual o pacote é distribuído.
  • long_description=open('README.txt').read(): Lê o conteúdo de README.txt para fornecer uma descrição detalhada do pacote.

Agora que o arquivo setup.py está pronto, abra um terminal clicando no ícone + no painel do terminal na parte inferior do IDE. Certifique-se de que seu diretório atual seja ~/project/pythonCheatsheet. Você pode navegar até ele executando cd ~/project/pythonCheatsheet.

Execute o comando de instalação:

pip install .

Você verá a saída no terminal enquanto o pip constrói e instala o pacote. A saída será algo parecido com isto, terminando com uma confirmação de que o pacote foi instalado:

Processing /home/labex/project/pythonCheatsheet
Building wheels for collected packages: pythonCheatsheet
  Building wheel for pythonCheatsheet (setup.py) ... done
  Created wheel for pythonCheatsheet: pythonCheatsheet-0.1-py3-none-any.whl
  Stored in directory: /tmp/pip-wheel-xxxxx
Successfully built pythonCheatsheet
Installing collected packages: pythonCheatsheet
Successfully installed pythonCheatsheet-0.1

Para confirmar a instalação, você pode usar o pip para listar os pacotes instalados e filtrar pelo seu novo pacote:

pip list | grep pythonCheatsheet

Você deverá ver seu pacote listado com sua versão:

pythonCheatsheet  0.1

Parabéns! Você criou com sucesso um arquivo setup.py e instalou um pacote Python.

Resumo

Neste laboratório, você aprendeu sobre o papel fundamental do script setup.py na distribuição de projetos Python usando Distutils. Você cobriu os campos de metadados essenciais necessários para um pacote: name, version e packages. Finalmente, você criou um arquivo setup.py prático, incluiu metadados adicionais como license e long_description, e instalou com sucesso seu pacote no ambiente local usando o comando pip install .. Agora você tem o conhecimento básico para tornar seus próprios projetos Python distribuíveis.