DEV Community

Cover image for Setuptools: Gerenciando pacotes Python com facilidade
Fabiano Santos Florentino
Fabiano Santos Florentino

Posted on • Updated on

Setuptools: Gerenciando pacotes Python com facilidade

Se você é um desenvolvedor Python, provavelmente já se deparou com a necessidade de gerenciar as
dependências de seu projeto e distribuir seu código para outros sistemas operacionais. Nesse caso,
setuptools é uma ferramenta essencial que pode ajudá-lo a automatizar esse processo.

O setuptools é uma biblioteca Python que permite a criação de pacotes Python, gerenciamento de dependências, distribuição e instalação de pacotes.

Neste artigo, discutiremos como usar o setuptools para criar e distribuir pacotes Python.

O primeiro passo para compartilhar uma biblioteca ou programa Python é construir um pacote de distribuição.
Isso inclui adicionar um conjunto de arquivos adicionais contendo metadados e configuração para não apenas
instruir o Setuptools sobre como a distribuição deve ser construída, mas também para ajudar os instaladores
(como pip) durante o processo de instalação.

1. Instalação e Configuração

Para começar a usar o setuptools, você precisa instalá-lo em seu ambiente Python. Isso pode ser feito
facilmente usando o pip, o gerenciador de pacotes Python:

pip install setuptools
Enter fullscreen mode Exit fullscreen mode

Após a instalação, você pode começar a usá-lo em seu projeto Python. Se você estiver criando um novo projeto,
pode configurar o ambiente virtual Python e instalar as dependências usando o pip. Caso contrário, pode
adicionar setuptools como uma dependência do projeto.

2. Gerenciamento de Dependências

Uma das principais funcionalidades do setuptools é o gerenciamento de dependências. Você pode definir as
dependências do seu projeto em um arquivo setup.py e instalar doas elas facilmente usando o pip.

from setuptools import setup

setup(
    name='meu_projeto',
    version='0.1',
    install_requires=[
        'requests',
        'flask',
        'numpy',
    ],
)
Enter fullscreen mode Exit fullscreen mode

Essa configuração define as dependências do projeto como requests, flask e numpy, quando executado
o seguindo comando.

pip install -e .
Enter fullscreen mode Exit fullscreen mode

O pip instalará todas as dependências definidas no setup.py automaticamente.

3. Distribuição de Pacotes

Outra funcionalidade importante é a distribuição de pacotes. Com o setuptools, você pode criar um pacote
Python e distribuí-lo para outros sistemas operacionais.

Por exemplo, você pode distribuir seu pacote no PyPi (Python Package Index) usando o seguinte comando:

python setup.py sdist bdist_wheel
Enter fullscreen mode Exit fullscreen mode

Esse comando criará um pacote de distribuição (meu_projeto-0.1.tar.gz) e o envia para o PyPi. Outros
usuários podem então instalar o pacote usando o pip.

pip install meu_projeto
Enter fullscreen mode Exit fullscreen mode

4. Criando um Pacote Python com Setuptools

Para criar um pacote Python com o setuptools, você precisa seguir alguns passos simples.

  • 4.1 Primeiro, crie um diretório para o seu pacote Python.
mkdir meu_projeto
cd meu_projeto
Enter fullscreen mode Exit fullscreen mode
  • 4.2 Em seguida, crie um arquivo setup.py nesse diretório com as informações sobre o pacote.
touch setup.py
Enter fullscreen mode Exit fullscreen mode
  • 4.3 Por fim, adicione o seguinte código ao arquivo setup.py:
from setuptools import setup, find_packages

setup(
    name='meu_projeto',
    version='0.1',
    description='Meu projeto Python',
    author='Seu Nome',
    packages=find_packages(),
)
Enter fullscreen mode Exit fullscreen mode

Este exemplo define as informações básicas do pacote, como nome, versão, descrição e autor.
O parâmetro packages=find_packages() informa ao Setuptools para incluir todos os pacotes no diretório
atual e subdiretórios.

Você também pode incluir outras informações no arquivo setup.py, como dependências do pacote e arquivos
de dados adicionais.

  • 4.4 Depois de criar o arquivo setup.py, execute o seguinte comando no terminal para criar um arquivo de distribuição:
python setup.py sdist
Enter fullscreen mode Exit fullscreen mode
  • 4.5 Este comando cria um arquivo tar.gz contendo todo o código-fonte do pacote e suas dependências. Você pode distribuir este arquivo para outros usuários, que podem instalá-lo usando o pip:
pip install meu_projeto-0.1.tar.gz
Enter fullscreen mode Exit fullscreen mode
  • 4.6 Se você quiser distribuir seu pacote em outras plataformas, como Windows ou macOS, pode usar a opção bdist_wheel em vez de sdist. Isso cria um pacote binário que pode ser instalado em qualquer plataforma compatível.
python setup.py bdist_wheel
Enter fullscreen mode Exit fullscreen mode
  • 4.7 Isso criará um arquivo wheel que pode ser distribuído para outros usuários, que podem instalá-lo usando o pip:
pip install meu_projeto-0.1-py3-none-any.whl
Enter fullscreen mode Exit fullscreen mode

Lembre-se de que é importante incluir todas as dependências do pacote no arquivo setup.py. Isso garantirá
que o pacote possa ser instalado corretamente em outros ambientes Python.

5. Configuração avançada do pacote com Setuptools

O Setuptools oferece muitas outras opções de configuração que você pode usar para personalizar seu
pacote Python. Aqui estão algumas das opções mais úteis:

  • install_requires: Uma lista de dependências do pacote.

  • entry_points: Uma maneira de definir pontos de entrada do pacote, como scripts e plugins.

  • data_files: Uma lista de arquivos de dados adicionais que devem ser incluídos no pacote.

  • classifiers: Uma lista de classificadores do PyPI para ajudar a categorizar o pacote.

Consulte a documentação do Setuptools para obter uma lista completa de opções de configuração.

6. Desenvolvimento em ambiente virtual com Setuptools

O desenvolvimento em ambiente virtual é uma prática recomendada para garantir que seu código Python
funcione corretamente em diferentes ambientes. O Setuptools oferece suporte ao desenvolvimento em
ambiente virtual, permitindo que você crie e gerencie ambientes virtuais com facilidade.

Para criar um novo ambiente virtual com o Setuptools, execute o seguinte comando:

python -m venv env
Enter fullscreen mode Exit fullscreen mode

Este comando cria um novo ambiente virtual no diretório env. Para ativar o ambiente virtual, execute
o seguinte comando:

  • No Windows: .\env\Scripts\activate.bat
  • No Linux ou macOS: source env/bin/activate

Com o ambiente virtual ativado, você pode instalar as dependências do pacote usando o pip:

pip install -r requirements.txt
Enter fullscreen mode Exit fullscreen mode

O arquivo requirements.txt deve listar todas as dependências do pacote. Você pode gerar automaticamente
este arquivo usando o comando pip freeze.

Quando você estiver pronto para distribuir o pacote, certifique-se de incluir o arquivo requirements.txt
e as instruções para criar um ambiente virtual em seu README ou documentação.

7. Conclusão

Setuptools é uma ferramenta poderosa para criar e distribuir pacotes Python. Ele oferece muitas opções
de configuração e integração com outras ferramentas, como o pip e o virtualenv. Usando o Setuptools,
você pode criar pacotes Python que funcionam em diferentes plataformas e ambientes, tornando mais
fácil compartilhar seu código com outros desenvolvedores.

Para um exemplo completo de como criar e distribuir um pacote Python com Setuptools, consulte a
documentação oficial do Setuptools em https://setuptools.pypa.io/.

Top comments (0)