Pitão

Ambientes virtuais em Python 3

Ambientes virtuais em Python 3
Como a maioria das pessoas, odeio instalar pacotes desnecessários em minha estação de trabalho. Depois de terminar com eles, desinstalá-los nunca é suficiente. Os pacotes deixam para trás toneladas de pastas e arquivos. Eles exigem muitos outros pacotes (obscuros) também deixados para trás no decorrer das coisas. Lentamente, mas com segurança, essas coisas se acumulam em sua estação de trabalho e, embora possam não ocupar nenhuma parte significativa de seu espaço em disco, podem causar outros problemas.

Dependências mais antigas

Pacotes mais antigos podem demorar e seu código Python os usará alegremente. Isso não é um problema se seus scripts Python são feitos para rodar localmente, e não para fins industriais. Cientistas de dados, estudantes e até mesmo pessoas comuns que automatizam suas tarefas diárias podem simplesmente continuar usando os pacotes mais antigos sem muitos problemas.

O problema começa quando você envia seu código para produção. Ao fazer isso, é provável que você apenas envie seu script principal e não todas as dependências do pacote. Por exemplo, se você escreveu um microsserviço para ser enviado como função AWS Lambda, as primeiras linhas podem importar o módulo de solicitação como este:

pedido de importação

O pacote de solicitação fornecido pelo AWS lambda será diferente do mais antigo e, como resultado, o programa pode travar.

Conflitos

Os conflitos também podem surgir quando diferentes projetos usam diferentes versões do mesmo pacote. Talvez alguns de seus projetos mais antigos precisem dos pacotes pip mais antigos. Mas você pode precisar do pacote mais recente para outros projetos. Executando pip install -U irá atualizar o pacote em seu sistema operacional causando problemas quando você voltar a manter seus projetos mais antigos.

Ambientes virtuais Python

Se você estiver usando qualquer versão do Python acima de 3.5, você pode usar um módulo integrado chamado venv para criar o que é chamado de Ambientes Virtuais Python. O que este módulo faz é criar uma pasta ou diretório isolado onde todos os seus pacotes pip e outras dependências podem viver. A pasta também contém um script de 'ativação'. Sempre que você quiser usar um ambiente virtual específico, basta executar este script após o qual apenas os pacotes contidos nesta pasta podem ser acessados. Se você executar pip install, os pacotes serão instalados dentro desta pasta e em nenhum outro lugar. Depois de terminar de usar um ambiente, você pode simplesmente 'desativá-lo' e então apenas os pacotes globais de pip estarão disponíveis para você.

Se você estiver usando o Ubuntu 18.04 e acima, você nem precisa instalar o gerenciador de pacotes pip em todo o sistema. Pip só pode existir dentro do seu ambiente virtual se você preferir assim.

Instalando o venv e criando ambientes virtuais

Ubuntu 18.04 LTS sai da caixa com Python 3.6.x, mas o módulo Python venv não está instalado, nem o pip. Vamos instalar apenas venv.

$ apt install python3-venv

Em seguida, vamos para o diretório dentro do qual você deseja que o diretório do seu ambiente virtual seja criado. Para mim é ~ / project1

$ cd ~ / project1

Crie seu venv com o seguinte comando, observe que my-env é apenas o nome desse ambiente, você pode nomeá-lo como quiser:

$ python3 -m venv my-env

Nota: Algumas instalações Python3, como as disponíveis no Windows, você chama o interpretador Python usando apenas python e não python3, mas isso muda de sistema para sistema. Por uma questão de consistência, usarei apenas python3.

Após o término da execução do comando, você notará uma nova pasta ~ / project1 / my-evn. Para ativar o ambiente virtual my-env, você terá que:

  1. Corre,
    $ source ~ / project1 / my-env / bin / activate se você estiver usando Bash.
    Existem scripts alternativos chamados de ativar.pescar e ativar.csh para pessoas que usam cascas de peixe e csh, respectivamente.
  2. No Windows, o script pode ser invocado executando:
    >.\ my-env \ Scripts \ activate.bastão se você estiver usando o prompt de comando, ou,
    >.\ my-env \ Scripts \ activate.ps1 se você estiver usando o PowerShell.

Usando ambientes virtuais

Depois de executar o script com sucesso, você notará que o prompt muda para algo como o que é mostrado abaixo, agora você pode instalar pacotes usando pip:

(my-env) $ pip3 pedidos de instalação
## Podemos listar os pacotes instalados usando o comando 'pip freeze'
(my-env) $ pip3 freeze
certifi == 2018.10.15
chardet == 3.0.4
idna == 2.7
pkg-resources == 0.0.0
pedidos == 2.20.1
urllib3 == 1.24.1

Enquanto o ambiente virtual estiver ativo (conforme indicado pelo prompt) todos os pacotes serão salvos apenas no diretório do ambiente virtual (my-env), não importa onde você esteja no sistema de arquivos.

Para sair do ambiente virtual, você pode digitar desativar no prompt e você voltará a usar a instalação do Python em todo o sistema. Você pode notar que os novos pacotes que acabamos de instalar não serão mostrados na instalação global do pip.

Para se livrar do ambiente virtual, simplesmente exclua a pasta my-env que foi criada após a execução do módulo. Você pode criar quantos desses ambientes desejar.

Conclusão

Com o módulo venv, os ambientes virtuais agora estão disponíveis como um recurso padrão do Python, especialmente se você instalar a partir do Python.org. Anteriormente, tínhamos muitas implementações de terceiros chamadas virtualenv, pyenv, etc.

Isso deu origem a softwares cada vez mais inchados como o Anaconda, especialmente popular entre os cientistas de dados. É bom finalmente ter uma ferramenta simplista para gerenciar pacotes Python sem ter que instalar um monte de outro lixo não relacionado. Você pode ler mais sobre venv aqui.

Instale o emulador Dolphin mais recente para Gamecube e Wii no Linux
O Dolphin Emulator permite que você jogue seus jogos de Gamecube e Wii escolhidos em computadores pessoais Linux (PC). Sendo um emulador de jogo disp...
Como usar o GameConqueror Cheat Engine no Linux
O artigo cobre um guia sobre como usar o mecanismo de cheat GameConqueror no Linux. Muitos usuários que jogam no Windows costumam usar o aplicativo “C...
Melhores emuladores de console de jogo para Linux
Este artigo irá listar software de emulação de console de jogo popular disponível para Linux. A emulação é uma camada de compatibilidade de software q...