
Como Criar Múltiplos Ambientes Virtuais (venv) com Python
Ambientes virtuais (venv
) são essenciais no desenvolvimento Python moderno, pois permitem isolar dependências de projetos, evitando conflitos entre bibliotecas. Neste artigo, você aprenderá como criar vários ambientes de forma automática com um simples script.
Por que usar ambientes virtuais?
Utilizar ambientes virtuais garante que cada projeto Python tenha suas próprias dependências, versões de pacotes e configurações, sem afetar outros projetos ou a instalação global do Python no sistema. Isso é especialmente importante em ambientes de desenvolvimento profissional e colaborativo.
Script com o módulo venv
Você pode usar o seguinte script para criar quatro ambientes virtuais automaticamente:
import os
import venv
environments = ["env1", "env2", "env3", "env4"]
for environment in environments:
path = os.path.join(os.getcwd(), environment)
venv.create(path, with_pip=True)
print("Virtual environments criados com sucesso!")
Esse código cria os ambientes env1, env2, env3 e env4 no diretório atual. A opção with_pip=True
garante que o pip
seja instalado em cada ambiente.
Erro comum e alternativa com subprocess
Se você encontrar o erro abaixo ao executar o código:
AttributeError: partially initialized module 'venv' has no attribute 'create'
Esse erro geralmente ocorre por importação circular, como nomear seu arquivo de script como venv.py
, o que entra em conflito com o módulo padrão. Uma alternativa mais robusta é usar o módulo subprocess
:
import os
import subprocess
environments = ["env1", "env2", "env3", "env4"]
for environment in environments:
path = os.path.join(os.getcwd(), environment)
subprocess.run(["python3", "-m", "venv", path])
print("Virtual environments criados com sucesso!")
Funcionamento do Script
- O módulo
os
é usado para obter o diretório atual e montar os caminhos dos novos ambientes. - Com
venv.create()
ousubprocess.run()
, o Python cria pastas com a estrutura necessária para cada ambiente virtual. - Ao ativar o ambiente (por exemplo, com
source env1/bin/activate
no Linux/Mac ouenv1\Scripts\activate.bat
no Windows), você pode instalar pacotes com pip sem afetar o sistema.
Dica adicional
Evite nomear seu script como venv.py
, pois isso pode causar conflitos com o módulo padrão. Escolha nomes como create_envs.py
ou similares.
Conclusão
Automatizar a criação de ambientes virtuais é uma prática eficiente e útil, especialmente em projetos com múltiplas configurações ou dependências. O uso de venv
ou subprocess
facilita esse processo e torna o gerenciamento mais produtivo.
Para mais dicas e tutoriais sobre Python, confira o canal no YouTube: @CanalQb