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
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',
],
)
Essa configuração define as dependências do projeto como requests
, flask
e numpy
, quando executado
o seguindo comando.
pip install -e .
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
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
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
-
4.2
Em seguida, crie um arquivosetup.py
nesse diretório com as informações sobre o pacote.
touch setup.py
-
4.3
Por fim, adicione o seguinte código ao arquivosetup.py
:
from setuptools import setup, find_packages
setup(
name='meu_projeto',
version='0.1',
description='Meu projeto Python',
author='Seu Nome',
packages=find_packages(),
)
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
-
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
-
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
-
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
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
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
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/.