Neste artigo, você irá entender conceitos importantes de Python e aprender a usar ambientes virtuais na linguagem.
Python é uma linguagem de programação forte graças à sua comunidade ativa, que desenvolve continuamente novas bibliotecas e soluções para nutrir seu ecossistema.
Entretanto, com uma grande comunidade, surgem desafios a serem resolvidos. Por exemplo: como garantir que o trabalho que eu estou desenvolvendo no meu computador seja utilizado por programadores em outras máquinas, outros sistemas operacionais e em outros momentos do tempo?
Algumas das ferramentas utilizadas para solucionar essa questão são os ambientes virtuais e a gestão de dependências, e aqui vamos explicar brevemente o que são cada um deles.
Gestão de dependências
Ao escrevermos um programa em Python, é muito comum que tenhamos de utilizar bibliotecas desenvolvidas pela comunidade, instaladas pelo pip. Isso é ótimo, pois permite uma ampla reutilização de códigos. Por exemplo, se alguém desenvolve uma biblioteca lá no Japão, você pode facilmente utilizá-la aqui, no Brasil.
Contudo, essas bibliotecas são organismos vivos e estão em constante atualização. É por isso que, ao sofrer uma atualização, o seu programa não consegue rodar com a nova versão. Para garantir que isso não ocorra, a única forma é, sempre que terminar de escrever um código, salvar as versões de todas as bibliotecas usadas para, no futuro, poder instalá-las na versão que garanta o bom funcionamento do script.
Isso se chama gestão de dependências, é o armazenamento e compartilhamento das informações de todas as bibliotecas (dependências) necessárias para que seu script funcione.
Mas, na prática, como fazer isso? É aí que entram os ambientes virtuais!
Ambientes virtuais
Agora já sabemos que, para garantir o bom funcionamento do nosso script no longo prazo, necessitamos de uma boa gestão de dependências. Mas suponhamos que temos dois projetos diferentes, um necessita da versão do Pandas 1.1.5 e o outro necessita da versão 0.25.0. Seria inviável ter que reinstalar a biblioteca toda vez que for mudar de um projeto para outro.
Para facilitar esse processo, o Python permite a criação de ambientes virtuais.
Esses ambientes são isolados, um não se comunica com o outro. É como se tivéssemos mais de uma instalação de Python no nosso computador, cada uma possuindo as suas próprias bibliotecas nas versões exatas que o projeto necessita.
E isso resolve nosso problema e conseguimos fazer a gestão de dependências facilmente!
Mas agora, vamos lá, como fazemos isso?
Criando ambientes virtuais em Windows
Partimos do pressuposto de que você já tem Python instalado na sua máquina.
Você pode criar ambientes virtuais com diferentes versões do Python. Para verificar as versões disponíveis na sua máquina, abra a linha de comando (também conhecida como command prompt ou CMD). Para isso, digite cmd
na procura e clique em Linha de comandos.
Para você descobrir as versões de Python disponíveis no seu PC, digite o comando where python
na linha de comando.
As instalações válidas de Python ficam, em geral, na pasta Programs
, do diretório local. Portanto, nós só temos uma instalação válida de Python nesta máquina, na versão 3.11.
Agora, vou criar uma pasta projetoVenv
dentro da pasta Documents
para começarmos nossos trabalhos. Para me mover para a pasta Documents
, utilizo o comando chdir
, depois crio a pasta projetoVenv
utilizando o comando mkdir
e entro nesse diretório recém-criado utilizando o comando chdir
novamente.
Depois, podemos finalmente criar nosso ambiente virtual utilizando o comando venv
, do Python. Esse comando funciona da seguinte forma:
- O caminho para a versão de Python que você quer no seu ambiente virtual. No nosso caso:
C:\Users\aavso\AppData\Local\Programs\Python\Python311\python.exe
- A flag
-m
. - O módulo
venv
da biblioteca padrão de Python, usado para a criação de ambientes virtuais. - E por fim, o nome da pasta na qual o ambiente virtual ficará armazenado (
projetoVenv
).
O comando fica assim portanto:
C:\Users\aavso\AppData\Local\Programs\Python\Python311\python.exe -m venv projetoVenv
Você pode notar que surgiu uma nova pasta chamada projetoVenv. Para facilitar, sugiro a utilização do comando start . para abrir o explorador de arquivos e facilitar a visualização.
Pronto, seu ambiente virtual está criado. Dentro dessa pasta projetoVenv
, você tem uma cópia do Python que está instalado na sua máquina e, todas as vezes em que você utilizá-lo, você estará utilizando um Python diferente do da máquina.
Utilizando ambientes virtuais em Windows
Para utilizar o ambiente virtual, você precisa ativá-lo antes. Para fazer isso pela linha de comando, rode o arquivo activate.bat
que fica na pasta Scripts
, criada dentro da pasta do seu ambiente virtual:
venvProjeto\Scripts\activate.bat
Você notará que o nome do seu ambiente virtual aparecerá entre parênteses no início da linha agora, e isso significa que seu ambiente está ativo.Agora podemos dar um comando where python
e verificar se realmente esse novo python está sendo utilizado:
Note que surgiu uma nova primeira linha, a qual aponta para o nosso Python do ambiente virtual. Exatamente como esperávamos.
Agora, sempre que eu rodar um script com python (usando o comando python meu_script.py
), nós estaremos utilizando o Python do ambiente virtual:
Para desativar o ambiente virtual, o processo é similar à ativação, mas no lugar utilizamos o arquivo deactivate.bat
:
venvProjeto\Scripts\deactivate.bat
E para provar que os dois interpretadores de Python são isolados, vamos utilizar o comando pip list
e mostrar que as bibliotecas instaladas no python do ambiente virtual são diferentes das bibliotecas do python do sistema:
Na imagem acima, rodamos primeiro no Python do sistema (fora do ambiente virtual) e obtivemos diversas bibliotecas instaladas. Em seguida, ativamos o ambiente virtual e rodamos o mesmo comando, e podemos ver que nesse ambiente só temos as bibliotecas padrão pip
e setuptools
instaladas.
Utilizando ambientes virtuais no VSCode
A criação de ambientes virtuais no VS Code é bem simples. Para testar esta funcionalidade, criamos o script abaixo, que reproduz o teste do pip list
que realizamos anteriormente.
import pip
print(pip.main(['list']))
TestarO VS Code reconhece automaticamente seu interpretador de Python quando estamos num script de Python. Podemos verificar isso no canto inferior direito do programa:
Podemos ver que ele reconheceu o nosso Python 3.11. Caso ele não tenha reconhecido, vale a pena conferir nosso tutorial sobre como configurar o interpretador de Python no VS Code.
Para criar um novo ambiente virtual, utilize o atalho Ctrl + Shift + P
e digite Python: Create
. A opção Python: Create Environment
deve aparecer. Caso seu VS Code esteja em português, procure por Python: Criar Ambiente
:
Depois, selecione venv
como método de criação do ambiente:
Por último, selecione a versão do interpretador do ambiente que estamos criando. Como nesta máquina só temos o Python 3.11 instalado, selecionaremos ele:
Pronto, o VS Code já cria o ambiente para você e, automaticamente, passa a utilizá-lo. Podemos verificar isso pelo canto inferior direito, que agora está mostrando a pasta .venv
como caminho do interpretador:
Todos os scripts que você rodar, estando nessa pasta já utilizarão o ambiente virtual. Caso você queira utilizar o interpretador global e não o ambiente virtual, clique no canto inferior direito sobre o .venv
e selecione o interpretador:
Agora, você pode testar o script test_venv.py
rodando-o com o ambiente virtual ativado e desativado e vendo a diferença no output do script.
O que aprendemos com tudo isso?
Acredito que a maior característica de um bom programador é a sua capacidade de manter o código organizado, e isso começa sempre com a organização do seu ambiente.
Então, agora que você sabe como funciona, comece a utilizar os ambientes virtuais. No início, pode parecer não fazer tanto sentido, mas, quando você for utilizar aquele código antigo que está há dois anos parado, tenho certeza de que você verá que valeu a pena!
Futuramente, pretendo aprofundar os temas de gestão de dependência com as ferramentas que estão surgindo. Fique ligado aqui no blog!
Cursos de programação gratuitos com certificado
Aprenda a programar e desenvolva soluções para o seu trabalho com Python para alcançar novas oportunidades profissionais. Aqui na Asimov você encontra:
- Conteúdos gratuitos
- Projetos práticos
- Certificados
- +20 mil alunos e comunidade exclusiva
- Materiais didáticos e download de código
Comentários