Anaconda

1. Introdução

Anaconda é uma distribuição gratuita e de código aberto das linguagens Python e R, amplamente utilizada em ciência de dados, machine learning e computação científica. Sua premissa é que, basta baixar o Anaconda "que tudo simplesmente funciona". Nesse contexto, além de oferecer diversas ferramentas úteis para as áreas citadas, ela oferece um ambiente completo, com cerca de 250 pacotes instalados por padrão e mais de 7500 pacotes adicionais facilmente acessíveis, facilitando o trabalho de desenvolvedores, pesquisadores e analistas de dados.

Além disso, o Anaconda inclui o Conda, um poderoso gerenciador de pacotes e de ambientes virtuais. Assim, ele permite administrar pacotes, ou seja, instalar, atualizar e removê-los junto às suas dependências específicas sem conflitos e manter projetos organizados por meio da criação de ambientes virtuais de forma isolada. Com uma instalação simples e uma coleção robusta de ferramentas, o Anaconda se tornou uma escolha popular entre quem trabalha com dados e precisa de um setup estável e funcional desde o início.

Como uma opção mais leve, existe, também, o Miniconda, uma distribuição python que inclui apenas o Python, o Conda e alguns poucos pacotes úteis. Assim, enquanto o Miniconda ocupa cerca de 400 MB, o Anaconda requer 3 GB por padrão.

2. Componentes Principais

  • Conda: Gerenciador de pacotes e de ambientes virtuais. (Anaconda e Miniconda)
  • Anaconda Navigator: Interface gráfica para gerenciamento de pacotes, ambientes e ferramentas. (Anaconda)
  • Jupyter Notebook: Ambiente interativo para análise e visualização de dados. (Anaconda)
  • Spyder: IDE voltada para cientistas de dados, similar ao RStudio. (Anaconda)
  • Bibliotecas incluídas: NumPy, Pandas, Matplotlib, SciPy, Scikit-learn, entre outras. (Anaconda e Miniconda (algumas))

3. Diferença entre Conda e Pip

Conda:

  • Criação de ambientes virtuais built-in;
  • Não requer compiladores;
  • Verifica dependências;
  • Pacotes disponíveis no Anaconda Cloud e facilmente instaláveis com conda;
  • Pacotes instalados apenas no ambiente Anaconda (evita conflitos com pacotes do sistema);
  • Anaconda tem um tamanho considerável por incluir bibliotecas e ferramentas de Data Science;
  • Performance otimizado para Data Science e Computação Científica;
  • A transferência de ambientes Anaconda entre uma máquina e outra pode apresentar incompatibilidades;

Pip:

  • Requer virtualenv ou venv para criar ambientes virtuais;
  • Pode necessitar compiladores;
  • Não verifica dependências;
  • Pacotes disponíveis na PyPI (Python Package Index);
  • Pacotes instalados e disponíveis no sistema todo;
  • Tamanho reduzido;
  • Pode precisar de otimização manual para melhorar o performance;
  • Pode ser usado em qualquer máquina com python instalado;

4. Instalação Anaconda

Para baixar o instalador da versão mais recente do Anaconda de forma fácil e direta, basta ir diretamente no site oficial e realizar o download na seção Distribution Instalers. Alternativamente, no Linux, você consegue obter esse instalador executando, no terminal, o comando:

curl -O https://repo.anaconda.com/archive/Anaconda3-2024.10-1-Linux-x86_64.sh

Ou, se desejar baixar outra versão, basta acessar o repositório anaconda, escolher a versão desejada e rodar o comando acima substituindo o arquivo Anaconda3-2024.10-1-Linux-x86_64.sh pelo arquivo desejado. Após baixar o instalador, é necessário executá-lo. Em um terminal Linux, é possível fazer isso rodando o seguinte comando:

bash ~/Anaconda3-2024.10-1-Linux-x86_64.sh

Em seguida, é necessário ler e aceitar os termos e condições do serviço. Feito isso, antes de a instalação começar, será perguntado em qual diretório se deseja instalar o Anaconda. Você pode deixar a instalação ocorrer no diretório padrão (/home/<USER>/anaconda3) ou digitar algum caminho específico que você desejar. Assim, após alguns minutos, antes de a instalação ser concluída, será perguntado como você prefere que seja a inicialização do programa:

  • Yes - conda modifica a configuração do seu shell para inicializar o conda sempre que você abrir o terminal e para reconhecer comandos do conda automaticamente.
  • No - conda não vai modificar os scripts do seu shell. Assim, será necessário configurar o conda. Para isso, rode, no seu terminal Linux, algo como: eval "$(/home/USER/anaconda3/bin/conda shell.bash hook)". Assim, você entrará no ambiente base do conda, de forma que basta rodar conda init que a configuração terá sido feita. Então, toda vez que quiser iniciar o Conda basta executar o comando source ~/.bashrc . Mais detalhes sobre essa configuração manual podem ser encontrados aqui.

5. Instalação Miniconda

Recomenda-se a instalação do Miniconda para quem já tiver suficientemente familiarizado com o conda e deseja uma distribuição leve. Para baixar essa distribuição, primeiro, é necessário baixar seu instalador. Para obte-lo, basta fazer o download na seção Minconda Instalers no site oficial. De forma alternativa, no Linux, você consegue obter esse instalador executando, no terminal, o comando:

curl -O https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh

Ou, se desejar baixar outra versão, basta acessar o repositório miniconda, escolher a versão desejada e rodar o comando acima substituindo o arquivo Miniconda3-latest-Linux-x86_64.sh pelo arquivo desejado. Após baixar o instalador, é necessário executá-lo. Em um terminal Linux, é possível fazer isso rodando o seguinte comando:

bash ~/Miniconda3-latest-Linux-x86_64.sh

Em seguida, é necessário ler e aceitar os termos e condições do serviço. Feito isso, antes de a instalação começar, será perguntado em qual diretório se deseja instalar o Miniconda. Você pode deixar a instalação ocorrer no diretório padrão (/home/<USER>/miniconda3) ou digitar algum caminho específico que você desejar. Assim, após alguns minutos, antes de a instalação ser concluída, será perguntado como você prefere que seja a inicialização do programa:

  • Yes - conda modifica a configuração do seu shell para inicializar o conda sempre que você abrir o terminal e para reconhecer comandos do conda automaticamente.
  • No - conda não vai modificar os scripts do seu shell. Assim, será necessário configurar o conda. Para isso, rode, no seu terminal Linux, algo como: eval "$(/home/USER/miniconda3/bin/conda shell.bash hook)". Assim, você entrará no ambiente base do conda, de forma que basta rodar conda init que a configuração terá sido feita. Então, toda vez que quiser iniciar o Conda basta executar o comando source ~/.bashrc . Mais detalhes sobre essa configuração manual podem ser encontrados aqui.

6. Gerenciamento de Ambientes e Pacotes com Conda

Como vimos, um dos principais recursos que tornam o Anaconda tão poderoso é o Conda, seu gerenciador de pacotes e ambientes. Ele permite que você instale bibliotecas, crie ambientes isolados para projetos diferentes e mantenha tudo organizado — sem conflitos entre versões de dependências. Antes de ver os principais usos do Conda, a fim de executar os comandos mostrados nesta parte do tutorial, inicialize o Conda, o que pode ser feito tanto manualmente quanto automaticamente, caso tenha configurado o conda para isso na instalação do Anaconda ou do Miniconda. Se tudo der certo, você deveria ter, no seu terminal, algo como:

(base) USER@MAQUINA:~$

O que indica que você entrou no ambiente base do Conda. Nessa seção, supomos que você já entrou no ambiente base do Conda.

Ambientes Virtuais

Ambientes virtuais são "espaços" isolados onde você pode instalar uma versão específica do Python e apenas as bibliotecas necessárias para um determinado projeto. A vantagem disso é que as bibliotecas instaladas em um ambiente virtual de um projeto serão isoladas do resto do sistema, o que evita conflitos com os pacotes e dependências do próprio sistema e de outros projetos, permitindo, assim, um desenvolvimento mais estável e previsível. Nesse contexto, vejamos 4 comandos úteis para a administração de ambientes virtuais.

Para criar um ambiente virtual chamado, por exemplo, meu_ambiente , e com a versão 3.10 do Python, basta executar o comando:

conda create -n meu_ambiente python=3.10

Caso deseje, é possível criar um ambiente virtual usando um arquivo .yml que contenha todas os pacotes desejados. Para isso, basta executar:

conda env create -f env_exemplo.yml -n meu_ambiente

A fim de ativar esse ambiente, basta executar:

conda activate meu_ambiente

Por fim, para voltar ao ambiente anterior, que pode ser tanto ambiente base ou o próprio sistema, basta executar:

conda deactivate

Por fim, a fim de ver todos os ambientes criados use:

conda env list

Gerenciamento de Pacotes

Assumindo que você está dentro de algum ambiente, temos diversos comandos úteis em relação ao gerenciamento dos pacotes.

Para instalar um pacote chamado, por exemplo, nome_pacote execute:

conda install nome_pacote

Para atualizar esse pacote, rode:

conda update nome_pacote

E para remover esse pacote, rode:

conda remove nome_pacote

O Conda instala pacotes a partir de canais, repositórios online que armazenam coleções de pacotes prontos para uso. Cada canal pode oferecer diferentes versões de pacotes, níveis de atualização, suporte a sistemas operacionais e padrões de compatibilidade. Por padrão, o Conda utiliza o canal defaults, mantido pela própria equipe do Anaconda.

O canal conda-forge é uma comunidade aberta e mantida por voluntários que empacotam e atualizam rapidamente uma vasta gama de bibliotecas. Para instalar a partir desse canal use o comando:

conda install -c conda-forge nome_pacote

É recomendado evitar instalar pacotes com conda misturando canais pois isso pode gerar conflitos de dependência difíceis de resolver.

7. Ferramentas que acompanham o Anaconda

Assim como foi discutido, o Anaconda acompanha diversas ferramentas muito úteis para a administração de pacotes e para Ciência de Dados, Computação Científica e IA. Sendo assim, vejamos algumas delas.

Anaconda Navigator

O Anaconda Navigator é uma Guided User Interface (GUI) que permite a administração de pacotes e ambientes Conda sem precisar rodar quaisquer comandos no terminal. Mais detalhes podem ser encontrados aqui.

Jupyter Notebook

Um Jupyter Notebook é uma aplicação interativa baseada na web amplamente usada em Ciência de Dados, Machine Learning e Computação Científica. Ele permite criar e compartilhar documentos que contêm:

  • Código executável (em Python e mais de 40 outras linguagens),
  • Texto formatado com Markdown (incluindo equações LaTeX),
  • Visualizações de dados (gráficos, tabelas interativas, etc.),
  • Saídas de código (como resultados de cálculos ou plots).

Spyder

Spyder é um Ambiente de Dessenvolvimento integrado (IDE) voltado especialmente para ciência de dados, computação científica e engenharia, utilizando a linguagem Python. Oferece diversas features muito úteis para essas áreas, tendo um funcionamento muito parecido com MATLAB e R-Studio:

  • Console Interativo;
  • Editor de arquivos com execução parcial ou total do código;
  • Vizualização integrada (permite abrir gráficos em janelas integradas, sem precisar exportar ou abrir arquivos externos);
  • Suporte nativo a bibliotecas como matplotlib, NumPy, pandas e SciPy, dentre várias outras.

Mais detalhes podem ser encontrados aqui.

Referências