Skip to content

Latest commit

 

History

History
152 lines (110 loc) · 4.66 KB

File metadata and controls

152 lines (110 loc) · 4.66 KB

Instalando pacotes

Sumário

Introdução

Quando estamos programando em Python, às vezes queremos realizar algum processamento que muito provavelmente já foi feito por outra pessoa. Considere o caso de querermos calcular o determinante da seguinte matriz:

1 2 3
4 5 6
7 8 9

Seguindo as regras da matemática, o determinante seria ((1*5*9)+(2*6*7)+(3*4*8)) - ((7*5*3)+(8*6*1)+(9*4*2))= 0.

Se fôssemos implementar um algoritmo para calcular o determinante de matrizes 3x3, ele seria o seguinte:

def det(matrix: list) -> int:
	diag_principal = (
		(matrix[0][0] * matrix[1][1] * matrix[2][2]) + 
		(matrix[0][1] * matrix[1][2] * matrix[2][0]) + 
		(matrix[0][2] * matrix[1][0] * matrix[2][1])
	)
	diag_secundaria = (
		(matrix[2][0] * matrix[1][1] * matrix[0][2]) + 
		(matrix[2][1] * matrix[1][2] * matrix[0][0]) + 
		(matrix[2][2] * matrix[1][0] * matrix[0][1])
	)
	return diag_principal - diag_secundaria

Porém, para que se dar ao trabalho? Este código já foi implementado pela biblioteca NumPy:

import numpy as np
print(round(np.linalg.det([[1, 2, 3],[4, 5, 6],[7, 8, 9]])))

É para isto que bibliotecas existem: para evitar que reinventemos a roda toda vez que formos programar uma aplicação!

Instalando bibliotecas

Existem duas maneiras de instalar bibliotecas: usando o comando conda, ou então o comando pip.

É sempre preferível instalar as bibliotecas com o comando conda, pois ele efetivamente "instala" a biblioteca na sua máquina. Por exemplo, se você fosse instalar a biblioteca Tensorflow, utilizada para processamento de imagens, e não posuísse os drivers mais atualizados da sua placa de vídeo, o conda os instalaria automaticamente para você. Com o comando pip, você precisaria instalar esses drivers por conta própria.

Além disso, pip não resolve conflitos entre bibliotecas. Se uma biblioteca precisa por exemplo do NumPy versão 1.09, e outra biblioteca precisa do NumPy versão 1.01, pode ser que a versão 1.05 do NumPy atenda aos requisitos de ambas as bibliotecas. O comando conda tentará verificar se este é o caso, e instalar a versão mais adequada do NumPy.

Já o comando pip copia-e-cola os pacotes numa pasta do ambiente virtual. Se houver algum conflito, você saberá porque a sua aplicação parou de funcionar...

Dito tudo isso, ainda haverão vezes que não será possível instalar uma biblioteca com o comando conda. Nesse caso, não haverá jeito, e você precisará usar o comando pip mesmo.

Passo-a-passo

  1. Crie um novo ambiente virtual:
conda create --name test --yes
  1. Ative-o:
conda activate test
  1. Instale a biblioteca pip usando o comando conda:
conda install pip

Por que estamos fazendo isso?

Toda vez que você criar um novo ambiente virtual, instale o pip nesse novo ambiente virtual. Senão o Python usará o pip padrão, e as bibliotecas serão instaladas para o Python padrão (e não para o Python do ambiente virtual).

  1. Se você já souber quais pacotes quer instalar, você pode instalá-los listando-os nome por nome, pela linha de comando:
conda install numpy scipy matplotlib
pip install numpy scipy matplotlib
  1. Ou, se você tiver clonado um repositório e houver um arquivo requirements.txt, você pode instalar todas as bibliotecas deste arquivo com os seguintes comandos:
conda install --file requirements.txt
pip install --requirement requirements.txt

Aviso: note que às vezes não será possível instalar todos os pacotes de um arquivo requirements.txt com o conda. Nesse caso, você terá que abrir este arquivo com um editor de textos (como o bloco de notas), e instalar pacote por pacote como no passo 4, até descobrir quais pacotes/bibliotecas só podem ser instalados com o pip.

Como saber se as bibliotecas foram instaladas?

Você pode descobrir se os pacotes foram instalados corretamente usando

conda list
pip list

Eles lhe mostrarão não apenas todas as bibliotecas/pacotes instalados no ambiente virtual atual, como também suas versões.

Como desinstalar uma biblioteca?

conda uninstall <nome do pacote>
pip uninstall <nome do pacote>