Ambientes virtuais em Python (venv)
Um guia para criar ambientes virtuais com o venv e rodar no Jupyter Notebook
Introdução
Quem nunca ouviu a frase “Na minha máquina funciona”? Se você trabalha com programação ou está começando seus estudos na área, já deve ter percebido que esse problema é muito recorrente. Muitas das vezes, o que faz um código rodar ou não em um computador é o seu ambiente.
Assim, apesar do Python ter uma linguagem simplificada, e não necessitar de muitas configurações de ambientes iniciais até o famoso “Hello World!”. É importante não negligenciar, especialmente em grandes projetos com muitas bibliotecas de diversas versões.
Para exemplificar as diferentes versões de bibliotecas, a lib Pandas tem mais de 20 versões (em 10/07/2021). Com todos esses releases, é possível que uma função seja descontinuada/criada ou tenha mais argumentos nos novos lançamentos, por exemplo.
Tendo essa motivação em vista, IDEs como o Pycharm facilitam a criação de ambientes com um simples clique. No entanto, é importante compreendermos o que está por debaixo dos panos, de modo que tenhamos cada vez mais ferramentas e mais opções para solucionarmos problemas.
Sendo assim, este post tem como objetivo criar um ambiente virtual com o módulo venv nativo do Python, criar um kernel deste ambiente e executá-lo no jupyter notebook.
Após essa breve introdução sobre a relevância do assunto, vamos ao que interessa, para o passo a passo do projeto.
Passo a passo
Antes de iniciar a parte prática, vale ressaltar que os comandos abaixo são executados pelo prompt de comando, testados em um computador com o Windows 10.
Para abrir o prompt na sua máquina, basta ir até a barra de pesquisar, digitar “cmd” e apertar enter.
Vamos à parte prática!
1. Criar a pasta do projeto
C:\> virtualenv projeto_teste
No comando acima, caminhe até a pasta raiz que você quer que seja criada a pasta do projeto. Neste exemplo, criaremos no “C” da máquina a pasta com o nome projeto_teste.
2. Ativar o ambiente virtual
C:\> C:\projeto_teste\Scripts\activate
Substitua o “C:\projeto_teste” pelo nome completo da pasta do seu projeto, caso tenha escolhido outro. Após a execução, a tela deverá ser como a que está abaixo, com o nome da pasta em parênteses.
Assim, já temos o ambiente virtual instalado e ativado. Entretanto, ainda falta criar o kernel para ser utilizado no jupyter notebook, que será feito daqui em diante.
3. Instalar a biblioteca ipykernel
C:\> python -m pip install ipykernel
Com a biblioteca ipykernel instalada, podemos criar o kernel que será selecionado no jupyter notebook.
4. Criar um kernel para o Jupyter Notebook
C:\> ipython kernel install --user --name=kernel_de_teste
Substitua o “kernel_de_teste” pelo nome de sua preferência.
5. Ir até a pasta do projeto
C:\> cd C:\projeto_teste
Assim como mencionado na segunda etapa, substitua o “C:\projeto_teste” pelo caminho do seu projeto.
6. Iniciar o Jupyter Notebook
C:\> jupyter notebook
Abra o seu navegador e crie um novo notebook, selecionando o kernel criado na etapa anterior.
7. Verificar as bibliotecas instaladas
Com o comando help(“modules”) retornamos todas as bibliotecas do instaladas no ambiente. E, como podemos verificar, temos apenas as bibliotecas do instaladas pelo python.
Ao tentar importar a biblioteca pandas, mencionada no início do artigo, foi retornada uma mensagem de erro, pois ainda não está instalada.
Conclusão
Após este passo a passo, criamos um ambiente virtual em Python, depois um kernel do projeto e, por fim, executamos no jupyter notebook.
Com isso, evitaremos problemas de versões de bibliotecas e ambientes em diferentes projetos. De modo que, caso precisemos atualizar ou instalar uma nova lib em um projeto, isto não impactará nos demais que já estão no seu computador.
Ao final desse post, você pode estar se perguntando. Já que construímos um ambiente somente com as bibliotecas nativas do Python, se eu quiser rodar um projeto, consigo importar todas as libs dele de uma vez?
Pois bem, este será o assunto para o próximo post, abordaremos sobre o requirements.txt.
Com esses dois papers, eliminaremos o problema abordado no início: “Na minha máquina funciona”, e você conseguirá rodar projetos do GitHub ou do seu parceiro de trabalho.