Conda e ambientes virtuais

O Anaconda (paródia com o nome de outra cobra, a python) é uma iniciativa que tem como objetivo agregar as principais ferramentas para análise de dados no python. Para utilizá-lo, baixe seu único arquivo contendo um novo python e todas as bibliotecas, que serão instaladas na home do próprio usuário (sem interferir na instalação principal). O arquivo instalador pode ser baixado do site do Anaconda, escolhendo sistema operacional, versão do python e arquitetura. Depois, torne-o executável (chmod +x nome_do_arquivo.sh) e siga os passos.

Se preferir uma versão mais minimalista, instale o Miniconda. Ele contêm apenas o gerenciador de pacotes (conda) e o Python. Baixe o programa no site do Miniconda e instale-o. Então, você pode usar o comando conda para instalar quaisquer outros pacotes e criar ambientes, etc. Existem duas variantes do instalador: Miniconda é baseado em Python 2 e Miniconda3 é baseado em Python 3. Observe que a escolha de qual Miniconda está instalado afeta apenas o ambiente raiz. Independentemente de qual versão do Miniconda você instalar, você ainda pode instalar os ambientes Python 2.x e Python 3.x.

Para finalizar, abra uma nova sessão ou atualize seu terminal com o comando “source ~/.bashrc”.

Ambientes virtuais

Um ambiente virtual (“virtualenv”) basicamente cria uma cópia de todos os diretórios necessários para que um programa Python seja executado, o que inclui:

  • bibliotecas comuns do Python (standard library);
  • gerenciador de pacotes (pip/conda);
  • o próprio binário do Python (Python 2.x/3.x);
  • dependências que estiverem no diretório site-packages;
  • seu código fonte descrevendo sua aplicação.

Assim, ao instalar uma nova dependência dentro do ambiente criado pelo virtualenv, ele será colocado no diretório site-packages relativo à esse ambiente, e não mais globalmente.

Para criar um ambiente virtual no miniconda, use o seguinte comando (suponde que o ambiente chame-se py37env, para versão 3.7):

Para entrar e sair desse ambiente, use:

Você também pode criar um alias para esse comando no arquivo “~/.bashrc”, como “alias py37env=’source activate py37env'”, por exemplo.

Algumas versões desatualizadas podem deixar o carregamento do terminal muito lento, por causa da inclusão de algumas linhas no arquivo “~/.bashrc” que chamam comandos de modo ineficiente. Você deve atualizar a versão do conda e mudar o conteúdo “/home//.anaconda3/bin/conda” para “~/.anaconda3/bin/conda” da parte do arquivo “~/.bashrc” incluída pelo conda (linhas entre “conda init”).

Pacotes do Conda

Para instalar/remover pacotes usando o conda, veja esses exemplos:

Para atualizar o conda e todos os seus pacotes, use:

Se der “PermissionError: [Errno 13] Permission denied: ‘/home/user/miniconda3/…'”, mude as credenciais da pasta do miniconda usando “sudo chown -R user /home/user/miniconda3/”.

Para adicionar um canal extra para instalar outros pacotes, use os seguintes comandos:

Esse exemplo instala o pacote “geocoder” – veja mais sobre ele no post sobre Como obter cidade usando latitude e longitude.

Ambiente virtual para o R

Caso queira usar o R, o indicado é criar um outro ambiente virtual só para ele. Depois, use o canal “conda-forge” para instalar o R, conforme segue:

Para instalar pacotes do R no ambiente virtual, você pode usar o seguinte comando, substituindo PACKAGENAME pelo nome do pacote R que aparece no CRAN (Comprehensive R Archive Network):

Os pacotes R disponíveis no conda estão listados no link. Caso não seja possível instalar o pacote através desse comando, entre no terminal R (certifique-se de estar no ambiente virtual dele) e faça a instalação especificando o caminho. Veja esse exemplo, considerando que o R está no ambiente virtual “renv”:

Para o caso do ambiente virtual ser o “base”, o caminho das bibliotecas R é “/home/user/anaconda3/lib/R/library”.

Se tiver algum shell script que chame scripts em R ou em python, deve-se incluir o comando de ativar o respectivo ambiente virtual antes de sua execução.

Scripts

Se você desenvolveu um script em um ambiente virtual e deseja colocá-lo no crontab ou executá-lo de fora desse ambiente, será preciso exportar o caminho de onde estão os binários para execução e ativar esse ambiente. Veja o exemplo a seguir:

Com esses comandos no início de seu shell script em bash, é exportada a variável de caminho, ativado o ambiente virtual e ainda impressas as versões do python e do R utilizados.

Se preferir o “virtualenv” sem o conda, você pode instalá-lo através do pip e usá-lo conforme indicado nesse link da Python Academy.

Reconstrução de ambientes virtuais

É possível gerar um arquivo YAML com as bibliotecas e versões instaladas no ambiente virtual. Para criar esse arquivo do ambiente em uso, digite o seguinte comando:

Para criar um ambiente a partir dessa lista ou atualizar um já existente, é só executar um dos comandos abaixo, respectivamente: