Je souhaite installer Scipy (Numpy est déjà installé). J'ai Python 3.5.1-3 installé avec OS et IDLE3 (3.5.2). Quand je frappe dans le terminal
Sudo pip3 install scipy
Il imprime
Traceback (most recent call last):
File "/usr/bin/pip3", line 9, in <module>
from pip import main
ImportError: cannot import name 'main'
J'ai déjà essayé de réinstaller pip3 et de redémarrer l'OS, mais cela n'a pas changé. Pip3 a-t-il travaillé étrangement avec quelqu'un d'autre?
numpy et scipy sont dans les référentiels par défaut de toutes les versions actuellement prises en charge d'Ubuntu. Pour installer numpy et scipy pour Python 3.x, ouvrez le terminal et tapez:
Sudo apt update
Sudo apt install python3-numpy python3-scipy
Pour Python 2.x c'est:
Sudo apt update
Sudo apt install --no-install-recommends python2.7-minimal python2.7 # this line is only necessary for Ubuntu 17.10 and later
Sudo apt install python-numpy python-scipy
tilisez python -m pip install
au lieu de pip install
Exemple:
python -m pip install --user somepackage
python3 -m pip install --user somepackage
J'ai commencé à rencontrer ce problème après une mise à niveau de pip
:
pip install --upgrade --user pip
L'exécutable pip
(resp. pip3
) est fourni par votre distribution (paquet python-pip
sur Ubuntu 16.04).
Par conséquent, il n'est pas tenu à jour avec le package pip
lors de la mise à niveau du pip, et risque de tomber en panne.
Si vous utilisez simplement python -m pip
directement, par exemple un péché:
python -m pip install --user somepackage
python3 -m pip install --user somepackage
il passe par votre chemin Python et trouve la dernière version de pip, puis exécute ce fichier.
Il s’appuie sur le fait que ce fichier est exécutable, mais qu’il s’agit d’un type d’interface très standard, et donc moins susceptible de se rompre que le script plus épineux de Debian.
Ensuite, je vous recommande d’ajouter les alias suivants à votre .bashrc
:
pip() ( python -m pip "$@" )
pip3() ( python3 -m pip "$@" )
Testé dans Ubuntu 16.04 après une mise à jour de pip3
9.0.1 à 18.0.
Le bogue se trouve dans le pip 10.0.0.
Sous Linux, vous devez modifier le fichier:/usr/bin/pip à partir de:
from pip import main
if __== '__main__':
sys.exit(main())
pour ça:
from pip import __main__
if __== '__main__':
sys.exit(__main__._main())
Bien que Karel ait peut-être résolu votre problème "installer numpy and scipy", le problème avec pip sur votre système n’a pas été résolu, vous aurez donc probablement plus de problèmes avec ce processus.
En regardant ici , cela semble être un problème récent assez courant avec le pip 10 sur les systèmes Ubuntu. Vous pouvez trouver des solutions sur ce fil qui fonctionnent pour vous, mais j'espère qu'une mise à jour résoudra le problème rapidement.
Mon problème a fini par être un décalage entre python3.6 et 3.7. L'installation de python3.6 a mis un lien dans /usr/bin/python3 -> /usr/bin/python3.6
même si le système était passé à python3.7.
Sudo apt purge python-pip
Sudo apt purge python3-pip
Sudo apt install python3.7 --reinstall
cd /usr/bin
Sudo rm python3
Sudo ln -s python3.7 python3
python3 --version
pip3 --version
J'ai eu le même problème, mais désinstaller et réinstaller avec apt et pip ne fonctionnait pas pour moi.
J'ai vu une autre solution qui présente un moyen facile de récupérer le chemin pip3:
Sudo python3 -m pip uninstall pip && Sudo apt install python3-pip --reinstall
L'installation de pip à partir d'apt et de pip lui-même peut en être la cause.
Dans mon cas, j'ai utilisé le paquet pip d'Ubuntu pour installer pipenv, qui a ensuite installé une copie plus récente de pip. Maintenant, parce que mon shell exécute le script pip 9 d'Ubuntu (pour vérifier l'exécution de which pip3
) et que mon interprète Python importe ensuite le module pip 10, la commande pip3 échoue. Je veux donc désinstaller l'un des deux.
Il est juste de supposer que vous avez le nouveau pip pour une raison. Dans ce cas, vous souhaitez désinstaller l’ancien pip comme ceci:
Sudo apt remove python3-pip
Si vous êtes certain de pouvoir utiliser l'ancien pip et préférez le package système, vous voudrez désinstaller le plus récent:
~/.local/bin/pip3 uninstall pip
ou à défaut
Sudo /usr/local/bin/pip3 uninstall pip