Criar o ambiente virtual para Python no VSCode usando VENV

Quando instalamos bibliotecas no Python, através do comando pip, elas são instaladas de modo global, ou seja, estão disponíveis para todos os arquivos python do nosso computador.

Porém, ao longo do tempo instalamos várias libs e nem todos os projetos precisam de todas elas.

Um dos problemas que isso pode ocorrer é: quando você exportar um app para exe, ele vai embutir todas as libs instaladas, o que pode tornar o tamanho do exe enorme. Outro problema é: você atualizar uma lib, funcionar para algum projeto e outro começar a dar bug com a nova versão.

Para garantir que apenas as libs necessárias para o projeto estejam disponíveis apenas para ele. Use o ambiente virtual.

Crie o seu ambiente virtual no Windows ou no Linux

O venv é nativo do Python e é bem simples de usar. Para criar seu ambiente virtual use o comando:

py -m venv venv

Já no Linux, use o comando:

python3 -m venv venv

O último venv pode ser substituído pelo nome do seu ambiente virtual, se quiser alterá-lo, fique a vontade.

Ative o ambiente virtual

Primeiro garanta que o seu PowerShell aceite comandos executados por scritps (arquivos .ps1) para o usuário atual do Windows, com o comando:

Usando o PowerShell e o terminal do VSCode

Set-ExecutionPolicy -ExecutionPolicy Undefined -Scope CurrentUser

Para ativar o seu ambiente virtual use:

.\venv\Scripts\Activate.ps1

No Linux, use o comando:

source venv/bin/activate

Caso tenha problemas de permisão, use o comando:

chmod +x venv/bin/activate

Usando o Prompt (cmd)

Se estiver usando o Prompt de comandos do Windows, popular cmd, use o arquivo .bat

.\venv\Scripts\Activate.bat

Como saber se estou no ambiente virtual venv

Quando você está executando comandos no ambiente virtual sempre aparece antes da pasta o nome do ambiente virtual entre parênteses, assim: (venv), neste caso, o ambiente virtual tem o nome venv.

Sair do Ambiente virtual

Para sair do Ambiente virtual, tanto no PowerShell (Windows) quanto no Bash (Linux), use o comando:

deactivate