Article image
Izairton Vasconcelos
Izairton Vasconcelos20/01/2025 09:49
Compartilhe

Script Bash para Agilizar a Criação de Projetos Python: Simplicidade e Eficiência

  • #Criatividade e Inovação
  • #Python

A ideia

Se você já passou pela tarefa repetitiva de configurar um projeto Python do zero, sabe como isso pode consumir tempo: criar pastas, arquivos, configurar o ambiente virtual, instalar dependências e ajustar detalhes como o .gitignore.

Mas e se eu te dissesse que você pode automatizar todo esse processo com um único comando? Foi exatamente isso que decidi fazer criando um script Bash para padronizar e agilizar a configuração de novos projetos Python, apesar da existência de outras ferramentas como o Cookiecutter uma solução mais robusta para criar projetos baseados em templates.


Por que isso é útil?

Aqui estão algumas razões pelas quais um script automatizado faz sentido para quem trabalha com Python (e outras linguagens):

  • Economia de tempo: Você não precisa repetir manualmente tarefas básicas para cada projeto.
  • Padronização: Todo projeto começa com a mesma estrutura e organização, facilitando o entendimento e colaboração.
  • Foco no essencial: Em vez de gastar tempo configurando, você começa a codificar o que realmente importa.
  • Flexibilidade: O script pode ser adaptado às suas necessidades, incorporando práticas específicas da sua rotina.


Como funciona?

O script que criei automatiza as seguintes etapas:

  1. Criação do diretório do projeto.
  2. Configuração do ambiente virtual Python.
  3. Instalação de bibliotecas essenciais (como pandas e matplotlib).
  4. Geração do arquivo requirements.txt.
  5. Criação de pastas organizadas (src, data, tests, etc.).
  6. Criação de arquivos base (README.md, main.py, etc.).
  7. Inclusão de um .gitignore com as melhores práticas.
  8. Um arquivo de orientações (USAGE.md) para facilitar o uso e entendimento do projeto.


Exemplo Prático

Imagine-se trabalhando num projeto de administração financeira, começando um desafio ou desenvolvendo um novo script para análise de dados. Após criar o script Bash, você executa:

./setup_project.sh nome_do_projeto

E, em segundos, seu projeto está configurado com:

  • Um ambiente virtual pronto.
  • Dependências instaladas.
  • Estrutura de pastas e arquivos organizada.
  • Arquivos ignorados pelo Git.
  • Tudo pronto para você começar a codificar.


Benefícios na Prática

  • Mais velocidade no desenvolvimento: Principalmente para quem trabalha em múltiplos projetos pequenos ou está aprendendo Python.
  • Evita erros: Não se esqueça de criar o .gitignore ou instalar dependências essenciais.
  • Organização consistente: Cada projeto segue o mesmo padrão, facilitando a manutenção.


Disponibilizando o Script

Veja o script abaixo e configure-o de acordo com seus novos projetos em Python. Copie-o e altere-o conforme sua necessidade e comece a usar hoje mesmo:

#!/bin/bash


# Verifica se foi fornecido o nome do projeto
if [ -z "$1" ]; then
echo "Por favor, forneça o nome do projeto. Exemplo:"
echo "./setup_project.sh nome_do_projeto"
exit 1
fi

PROJECT_NAME=$1

# Cria o diretório do projeto
mkdir $PROJECT_NAME
cd $PROJECT_NAME

# Cria o ambiente virtual
python -m venv venv

# Ativa o ambiente virtual
source venv/Scripts/activate

# Instala dependências básicas
pip install pandas matplotlib tabulate

# Gera o requirements.txt
pip freeze > requirements.txt

# Cria a estrutura de pastas e arquivos
mkdir data src tests docs images
touch README.md USAGE.md src/simulacao.py src/utils.py src/configuracoes.py main.py

# Cria um arquivo .gitignore
cat <<EOL > .gitignore
# Ignorar o ambiente virtual
venv/

# Ignorar arquivos temporários e cache do Python
__pycache__/
*.py[cod]
*.pyo
*.log

# Ignorar arquivos de saída
*.csv
*.png
*.jpg
*.jpeg

# Ignorar arquivos do sistema operacional
.DS_Store
Thumbs.db
EOL

# Adiciona conteúdo básico ao USAGE.md
cat <<EOL > USAGE.md
# Como Usar o Script de Configuração do Projeto

## 1. Introdução

Este projeto foi configurado usando o script \`setup_project.sh\`, que cria automaticamente:

- Estrutura básica de pastas e arquivos.
- Ambiente virtual configurado.
- Dependências essenciais instaladas.

## 2. Estrutura do Projeto

- \`src/\`: Código-fonte principal.
- \`data/\`: Dados para simulações ou testes.
- \`tests/\`: Scripts para testes unitários.
- \`docs/\`: Documentação adicional.
- \`images/\`: Imagens coletadas ou geradas no desenvolvimento.
- \`venv/\`: Ambiente virtual (ignorado pelo Git).

## 3. Como usar o script

1. Salve o script como setup_project.sh.
2. Dê permissão de execução ao script:

    chmod +x setup_project.sh

3. Execute o script passando o nome do projeto como argumento:

    ./setup_project.sh nome_do_projeto

## 4. Como Executar o Projeto

1. Ative o ambiente virtual:
 - **Windows**: Terminal VSCode Git Bash

   source venv/Scripts/activate

 - **Linux/Mac**:

   source venv/bin/activate

2. Execute o arquivo principal:

 python main.py

## 5. Como Adicionar Dependências

1. Instale o pacote:

 pip install nome_do_pacote

2. Atualize o \`requirements.txt\`:

 pip freeze > requirements.txt

## 6. OBSERVAÇÃO

Você pode usar o \`pipreqs\` para gerar um arquivo requirements.txt com apenas as bibliotecas
que estão sendo utilizadas diretamente no seu projeto. Isso ajuda a evitar dependências desnecessárias,
resultando em um arquivo mais enxuto e específico.

### Como usar o pipreqs

1. Instale o pipreqs: Certifique-se de que o ambiente virtual está ativo e instale o pacote:

pip install pipreqs

2. Gere o arquivo requirements.txt: Execute o comando abaixo no diretório raiz do seu projeto (substitua ./ pelo caminho correto, se necessário):

pipreqs ./ --force

./: Representa o diretório atual.
--force: Sobrescreve o arquivo requirements.txt existente.

3. O que o pipreqs faz?

- Ele escaneia os arquivos Python no diretório especificado.
- Identifica as bibliotecas importadas diretamente no código.
- Gera um requirements.txt contendo apenas essas bibliotecas e suas versões.

## 7. Git Hub

Certifique-se de manter o \`.gitignore\` atualizado para evitar versionar arquivos desnecessários.

## 8. Resultado

Ao executar o script, você terá:

- Um diretório com o nome do projeto.
- Ambiente virtual configurado.
- Estrutura organizada de pastas e arquivos.
- Arquivo .gitignore para evitar versionar arquivos desnecessários.
- Um USAGE.md com instruções claras de uso.

EOL

# Mensagem de sucesso
echo "Projeto '$PROJECT_NAME' configurado com sucesso!"


Conclusão

Automatizar a configuração de projetos em Python não é apenas uma questão de praticidade, mas também de produtividade e organização.

Um script simples como este pode economizar horas de trabalho ao longo do tempo e tornar seus projetos mais consistentes.

Se você gostou da ideia ou tem sugestões de melhoria, comente aqui! Vamos trocar experiências e aprender juntos.


Siga-me no LinkedIn: www.linkedin.com/comm/mynetwork/discovery-see-all?usecase=PEOPLE_FOLLOWS&followMember=izairton-oliveira-de-vasconcelos-a1916351

Se você quiser conferir o projeto e o código relacionado, ele está disponível no meu GitHub:



Compartilhe
Comentários (6)
Izairton Vasconcelos
Izairton Vasconcelos - 25/01/2025 16:46

Olá Leandro Carvalho, obrigado pelo seu comentário.

Sim, estarei postando aqui na DIO outros artigos técnicos com automação Python.



Pedro Silva
Pedro Silva - 20/01/2025 12:06

Excelente material . Acho muito bom ver essas boas práticas e formas de não perdermos tempo em algo que, na minha visão em boa parte dos projetos serão iguais. Obrigado Izairton, muito bom o artigo!

Izairton Vasconcelos
Izairton Vasconcelos - 20/01/2025 14:03

Olá Pedro Silva, obrigado pelo seu comentário, que bom que achou legal..

Leandro Carvalho
Leandro Carvalho - 25/01/2025 16:21

Estou começando a estudar automação com Python, seu código me inspirou muito.

Poderia trazer mais artigos sobre automação com Python.

Izairton Vasconcelos
Izairton Vasconcelos - 20/01/2025 17:59

Olá, pessoal da DIO Community, muito obrigado pelo feedback tão positivo! Fico muito contente que o projeto tenha sido bem recebido e que a proposta de automação e otimização do trabalho dos desenvolvedores tenha chamado a atenção. Meu objetivo foi exatamente facilitar a rotina, proporcionando mais tempo para focar no desenvolvimento e na inovação.

Sobre os desafios, foi um aprendizado e tanto estruturar as funcionalidades de forma prática e organizada, garantindo que cada etapa fosse intuitiva e eficiente para os usuários. Quero também destacar a importância da DIO e seus cursos e bootcamps no meu aprendizado. Eles têm sido essenciais para meu crescimento na programação, fornecendo tanto o conhecimento técnico quanto a inspiração para desenvolver projetos como este. Continuarei me dedicando para trazer mais soluções úteis e compartilhar o que venho aprendendo.

O maior desafio ao desenvolver este script foi manter a persistência e o foco em criar uma solução que ajudasse a organizar e configurar de forma eficiente meus outros projetos, principalmente na área de gestão financeira, onde pretendo utilizar outros scripts em Python. Durante o processo, fui testando, ajustando e implementando o script até chegar ao ponto atual, onde ele já está trazendo ganhos significativos de produtividade e organização.

Agradeço novamente pelo reconhecimento e pela oportunidade de compartilhar ideias. Abraço!

DIO Community
DIO Community - 20/01/2025 15:30

Parabéns pelo artigo, Izairton! A ideia de criar um Script Bash para agilizar a criação de projetos python é uma solução prática e eficiente para otimizar o trabalho de desenvolvedores. Sua abordagem demonstra como a automação pode economizar tempo, padronizar processos e permitir que os profissionais foquem no que realmente importa: a codificação e o desenvolvimento de soluções.

Os destaques do projeto incluem a criação automática de estruturas organizadas, configuração de ambientes virtuais, instalação de dependências essenciais e a inclusão de arquivos como .gitignore e README.md. Essas práticas não apenas aumentam a produtividade, mas também promovem consistência e organização entre os projetos.

Qual foi o maior desafio ao desenvolver esse script?