Pourquoi n'est-ce pas pip mise à jour de mon numpy et scipy?
Mon problème est que pep ne pas mettre à jour mes Paquets Python, même si il n'y a pas d'erreurs.
Il est semblable à cette une, mais je suis maintenant sûr de quoi faire. Fondamentalement, TOUS mes paquets pour python semble être ridiculement obsolète, même après la mise à jour tout via pip. Voici les détails:
- Je suis à l'aide de pip, la version 1.5.6.
- Je suis à l'aide de Python, version 2.7.5
- Je suis sur Mac OSX, version 10.9.5.
En utilisant cela, j'ai:
- Mon numpy version 1.6.2.
- Mon scipy version 0.11.0.
- Mon matplotlib version 1.1.1.
Même après que j'ai essayer:
sudo pip uninstall numpy
Suivie par:
sudo pip install numpy
Ils ont tous les deux réussi, mais quand je vais dans python et vérifier la version de numpy, c'est toujours l'ancien. (Comme le sont tous les autres paquets).
Pas sûr de ce qui se passe ici?... Comment cela peut-il être fixé? P. S. je suis nouveau sur ce, je vais peut-être besoin d'instructions claires. Merci. Aussi, si quelqu'un veut, je peut fournir une capture d'écran, pip, comme il est en train d'installer numpy.
EDIT:
Commandes j'ai couru aussi par les commentaires:
$which -a pip
/usr/local/bin/pip
$ head -1 $(which pip)
#!/usr/bin/python
$ which -a python
/usr/bin/python
python
et votre pip
est lié à un autre.Si vous n'êtes pas sûr de savoir si vous avez installé un supplément de Python côté d'Apple, exécuter toutes les commandes suivantes et de nous montrer la sortie:
which -a pip
, head -1 $(which pip)
, which -a python
.Aussi, avez-vous des Homebrew, MacPorts, Fink, ou un autre gestionnaire de paquets? Comment avez-vous d'installer tous les prereqs pour
matplotlib
et amis?J'ai utilisé homebrew pour tout, sauf pépin, qui je l'ai fait via
sudo easy_install pip
.J'ai ajouté les informations contenues dans la question. Comment puis-je og sur la résolution de ce problème? Des acclamations.
OriginalL'auteur Spacey | 2014-10-15
Vous devez vous connecter pour publier un commentaire.
Dans OS X 10.9, Apple Python est livré avec un ensemble de pré-installé les paquets supplémentaires, dans un répertoire nommé
/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python
. Y comprisnumpy
.Et la façon dont ils sont installés (comme si en utilisant
easy_install
avec un ancien pré-version 0.7 desetuptools
, mais pas dans la normaleeasy_install
destinations),pip
ne sait rien à leur sujet.Donc, ce qui se passe est que
sudo pip install numpy
installe une copie distincte denumpy
en'/Library/Python/2.7/site-packages'
—mais dans votresys.path
, leExtras
répertoire vient avant lesite-packages
répertoire,import numpy
trouve encore Apple copie. Je ne suis pas sûr pourquoi, mais c'est probablement pas quelque chose que vous voulez singe avec.Alors, comment vous résoudre ce problème?
Les deux meilleures solutions sont:
Utilisation
virtualenv
et installer votrenumpy
et amis dans un environnement virtuel, au lieu de l'ensemble du système. Cela a l'inconvénient que vous avez à apprendre comment utiliservirtualenv
—mais c'est certainement la peine de le faire à un certain point, et si vous avez le temps de l'apprendre maintenant, allez-y.La mise à niveau vers Python 3.x, soit à partir d'un python.org installateur ou via Homebrew. Python 3.4 ou, plus tard, avec
pip
, et ne vient pas avec toutpip
hostile pré-installé les packages. Et, contrairement à l'installation d'un distinct 2.7, il n'interfère pas avec Apple Python;python3
etpython
,pip3
etpip
, etc., seront tous deux programmes distincts, et vous n'avez pas à apprendre quoi que ce soit sur la façon CHEMIN fonctionne ou pas. Cela a l'inconvénient que vous avez à apprendre Python 3.x, qui a des changements majeurs, à nouveau, un peu d'une courbe d'apprentissage, mais encore une fois, certainement la peine de le faire à un certain point.En supposant aucune de celles-ci est possible, je pense l'option la plus simple est d'utiliser
easy_install
au lieu depip
, pour les paquets que vous voulez installer de nouvelles versions d'Apple "extras". Vous pouvez obtenir une liste complète de ceux en regardant ce qui est dans/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python
. Lorsque vous mettez à niveaunumpy
, vous avez probablement vous aussi souhaitez mettre à niveauscipy
etmatplotlib
; je pense que tout le reste il n'y a aucun lien de parenté. (Vous pouvez bien sûr de mise à niveauPyObjC
oudateutil
ou quoi que ce soit d'autre, vous vous souciez de là, mais vous n'avez pas à.)Ce n'est pas une solution idéale, il y a beaucoup de raisons
easy_install
est inférieure àpip
(par exemple, de ne pas avoir un programme de désinstallation, de sorte que vous allez avoir à se rappeler où que/Library/blah/blah
chemin est (ou la retrouver par l'impression de sortirsys.path
de l'intérieur de Python). Je ne serait pas normalement suggèrenteasy_install
pour rien, saufreadline
etpip
lui-même (et alors seulement avec Apple Python). Mais dans ce cas, je pense que c'est plus simple que les autres solutions.Si vous tentez d'utiliser le Python, dont le site-packages qui est, vous avez laissé les choses foiré, mais si oui, ré-installer NumPy avec Python
pip
devrait résoudre le problème (et ce, même si elle ne le fait pas, l'erreur va vous dire comment le réparer manuellement). Si vous essayez d'utiliser un autre Python, alors que le site-packages n'a pas d'importance de toute façon, c'est sûr.OriginalL'auteur abarnert
Vieille question, mais je l'ai trouvé en essayant de résoudre ce problème, vais poster ma solution.
J'ai trouvé @abarnert diagnostic correct et utile, mais je n'en aime aucune des solutions: j'ai vraiment envie de mettre à niveau la version par défaut de numpy. Le problème est que le directory, ces gars-là sont dans (@abarnert mentionné) ne peut pas être touché par
sudo
, comme ils le sont dans ce groupe "wheel". En fait, si vous y allez et nesudo rm -rf blah
, il vous donnera une erreur permission denied.Pour contourner ce problème, nous avons à prendre des mesures drastiques:
csrutil disable
pip2 install --user --upgrade numpy
(et de même pour tous les autres paquets qui ont ce problème)Remarque: "csrutil désactiver" est une affaire sérieuse, qui peut déstabiliser votre machine, je voudrais l'utiliser seulement quand c'est absolument nécessaire et la réactiver au plus vite. Mais autant que je sache, c'est la seule façon de mettre à niveau les paquets Python dans une roue répertoire.
OriginalL'auteur cag51
Renommer le numpy et scipy versions installées par Apple dans /System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/de sorte qu'il commence à utiliser les versions les plus récentes installé par le Pip.
OriginalL'auteur Eddie