DEV Community

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

Posted on • Edited on

5

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/.

Heroku

Build apps, not infrastructure.

Dealing with servers, hardware, and infrastructure can take up your valuable time. Discover the benefits of Heroku, the PaaS of choice for developers since 2007.

Visit Site

Top comments (0)

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay