Je pourrais installer un package python ( par exemple , numpy
) sur mon Mac via Macports:
port install py-numpy
ou via pip
:
pip install numpy
Quels sont les avantages / inconvénients généraux de chaque approche? Quand faut-il utiliser chaque approche?
- Quand devrais-je préférer l'un à l'autre?
- Est-il important que le package que j'installe soit petit ou grand (par exemple
numpy
)? - Cela dépend-il de la version de python que j'utilise (
2.x
vs3.x
, ou Applepython
vs MacPortpython
)? - Est-il important que plusieurs versions de soient
python
installées sur mon Mac? - Peuvent-ils être utilisés simultanément?
J'espère une réponse qui contient une courte liste de certains avantages / inconvénients de chaque approche avec une discussion sur le moment de choisir l'une plutôt que l'autre.
matplotlib
.numpy
n'est qu'un exemple. Je pose des questions sur l'installation des packages en général.Réponses:
Ils peuvent être utilisés simultanément, et il ne devrait y avoir aucun problème entre le mélange des deux (avec une sorte de grosse mise en garde et un gotcha ...)
La mise en garde
La mise en garde est que macports / homebrew et pip n'auront aucune conscience de chacun a installé contre l'autre.
Ainsi, par exemple, disons que vous installez python 3.6 sur votre Mac. Vous voulez
nltk
, ce qui n'est pas techniquement disponible pour cette version sur Macports, mais c'est sur pip. Vous installez donc sur pip. Deux mois plus tard, vous voyez son installé sur Macports et choisissez de l'installer. Maintenant, vous avez deux versions différentes denltk
sur votre machine, donc mettez en garde Emptor .Le Gotcha
Si vous utilisez pip avec Macports, vous devez vous assurer que c'est bien le pip qui est installé via Macports et associé à cette version de python. Ainsi, par exemple, vous verrez un py35-pip, py36-pip, etc.
Une fois que vous avez installé le bon pip, vous utilisez la
select
commande de Macports pour vous assurer qu'il est activé avec la version appropriée de python:la source
Vous devez utiliser
pip
car c'est l'outil natif Python pour gérer les installations de packages, mais vous ne devez pas installer les choses par pip dans votre installation Python de base. Il peut être compliqué de trier les dépendances de version fixes entre plusieurs référentiels de logiciels si vous installez tout par pip dans votre installation Python de base sur votre machine.À la place, vous devez installer pip virtualenv , puis l'utiliser pour gérer différentes installations virtuelles Python et tous les packages de packages installés par pip associés pour chaque environnement virtuel.
Cela vous permet de passer de travailler avec, disons,
beautifulsoup
1.x dans un référentiel logiciel àbeautifulsoup
2.x dans un autre référentiel sans avoir à traverser l'enfer de la gestion des dépendances.la source
Je viens de faire un test rapide en recherchant le même package en utilisant Homebrew , MacPorts et pip3 :
MacPorts et pip3 avaient le même package (version 1.18.1 ), tandis que Homebrew avait la version 1.16 .
Lorsque vous collaborez avec d'autres, il est préférable de vous mettre d'accord sur la configuration de vos environnements de développement ou vous commencerez à tomber sur des anomalies et à obtenir des résultats de test différents. Par conséquent, le meilleur outil est celui sur lequel vous êtes tous d'accord ;-)
la source