Eu poderia instalar um pacote de python ( por exemplo , numpy
) no meu Mac, quer através Macports:
port install py-numpy
ou via pip
:
pip install numpy
Quais são os prós / contras gerais de cada abordagem? Quando cada abordagem deve ser usada?
- Quando devo preferir um ao outro?
- Importa se o pacote que estou instalando é pequeno ou grande (por exemplo
numpy
)? - Depende da versão do python que estou usando (
2.x
vs.3.x
ou da Applepython
vs. MacPortpython
)? - Importa se tenho várias versões
python
instaladas no meu Mac? - Eles podem ser usados simultaneamente?
Espero uma resposta que tenha uma lista curta de alguns prós / contras de cada abordagem, com alguma discussão sobre quando escolher uma sobre a outra.
matplotlib
.numpy
é apenas um exemplo. Estou perguntando sobre a instalação de pacotes em geral.Respostas:
Eles podem ser usados simultaneamente, e não deve haver problema entre misturar os dois (com uma ressalva meio grande e uma pegadinha ...)
A Advertência
A ressalva é que macports / homebrew e pip não terão conhecimento de que cada um foi instalado em relação ao outro.
Então, por exemplo, digamos que você instale o python 3.6 no seu Mac. Você deseja
nltk
, que não está tecnicamente disponível para essa versão no Macports, mas está no pip. Então você instala no pip. Dois meses depois, você o vê instalado no Macports e escolhe instalá-lo. Agora você tem duas versões diferentes danltk
sua máquina, portanto, ressalte o emptor .The Gotcha
Se você usa pip com Macports, precisa certificar-se de que é o pip instalado através do Macports e associado a essa versão python. Então, por exemplo, você verá um py35-pip, py36-pip, etc.
Depois de instalar o pip adequado, use o
select
comando Macports para garantir que ele seja ativado com a versão apropriada do python:fonte
Você deve usá-
pip
lo porque é a ferramenta nativa do Python para gerenciar instalações de pacotes, mas não deve instalar os itens na sua instalação básica do Python. Pode ser uma bagunça ter que resolver dependências de versão fixa entre vários repositórios de software se você estiver instalando tudo na sua instalação básica do Python na sua máquina.Em vez disso, você deve instalar o virtualenv por pip e usá-lo para gerenciar diferentes instalações virtuais do Python e todos os pacotes de pacotes instalados pelo pip associados para cada ambiente virtual.
Isso permite que você mude de trabalhar com, por exemplo,
beautifulsoup
1.x em um repositório de software parabeautifulsoup
2.x em outro repositório sem precisar percorrer o inferno do gerenciamento de dependências.fonte
Acabei de fazer um teste rápido procurando o mesmo pacote usando o Homebrew , MacPorts e pip3 :
MacPorts e pip3 tinham o mesmo pacote (versão 1.18.1 ), enquanto o Homebrew tinha a versão 1.16 .
Ao colaborar com outras pessoas, é melhor concordar em como seus ambientes de desenvolvimento estão configurados ou você começará a colidir com anomalias e obter resultados de testes diferentes. Portanto, a melhor ferramenta é com a qual todos concordam ;-)
fonte