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:

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.