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 le système d'exploitation, mais cela n'a pas changé. Pip3 a-t-il travaillé bizarrement avec quelqu'un d'autre?
Utiliser
python -m pip install
au lieu depip install
Exemple:
J'ai commencé à avoir ce problème après une
pip
mise à niveau:L' exécutable
pip
(resp.pip3
) Est fourni par votre distribution (python-pip
package sur Ubuntu 16.04).Par conséquent, il n'est pas mis à jour avec le
pip
package lui-même lors de la mise à niveau de pip et peut se casser.Si vous utilisez simplement
python -m pip
directement, par exemple comme dans:il passe par votre chemin Python et trouve la dernière version de pip, et exécute ce fichier.
Il repose sur le fait que ce fichier est exécutable, mais il s'agit d'un type d'interface très standard, et donc moins susceptible de se casser que le script Debian plus pirate.
Ensuite, je recommande d'ajouter les alias suivants à votre
.bashrc
:Le
/usr/bin/pip3
fichier Ubuntu 18.04 fait:et a probablement
main
été retirépip
à un moment donné qui est ce qui a brisé les choses.La rupture de la validation pip semble être: 95bcf8c5f6394298035a7332c441868f3b0169f4 "Déplacer toutes les API internes vers pip._internal" qui est entré dans pip 18.0.
Testé dans Ubuntu 16.04 après une mise à jour de
pip3
9.0.1 à 18.0.pyenv
En fin de compte, cependant, pour un développement Python sérieux, je recommanderais simplement d'installer votre propre Python local avec pyenv + virtualenv, qui contournerait également ce bogue Ubuntu: Comment installer une version Python différente en utilisant apt-get?
la source
/usr/bin/pip
est fourni par un package Ubuntu Python etpip
ne le remplace pas. Mais lepip update
est géré parpip
lui-même, et évite de toucher aux fichiers Ubuntu.Debian
- Le commentaire dit:Run the main entry point, similarly to how setuptools does it, but because we didn't install the actual entry point from setup.py, don't use the pkg_resources API.
Peut - être qu'il existe un moyen d'installer Python correctement d'une manière python./usr/bin/pip
:-)Le bogue se trouve dans pip 10.0.0.
Sous Linux, vous devez modifier le fichier: / usr / bin / pip à partir de:
pour ça:
la source
pip
équipe.J'ai eu le même problème, mais désinstaller et réinstaller avec apt et pip n'a pas fonctionné pour moi.
J'ai vu une autre solution qui présente un moyen simple de récupérer le chemin pip3:
la source
Bien que karel ait résolu votre problème "installer numpy et scipy", ce qui ne va pas avec pip sur votre système n'a pas été résolu, vous aurez donc probablement plus de problèmes avec pip à l'avenir.
En regardant ici , il semble que ce soit un problème récent assez courant avec pip 10 sur les systèmes Ubuntu. Vous pouvez trouver des solutions à ce problème qui fonctionnent pour vous, mais j'espère qu'une mise à jour le corrigera bientôt.
la source
L'installation de pip à partir d'apt et de pip lui-même peut provoquer cela.
Dans mon cas, j'ai utilisé le paquet pip d'Ubuntu pour installer pipenv qui a ensuite installé une nouvelle copie de pip. Maintenant, car mon shell exécute le script pip 9 d'Ubuntu (pour vérifier l'exécution
which pip3
) et 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 savez avec certitude que vous êtes bien avec 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
la source
type
Cela devrait supprimer cette erreur
la source
Forcer la réinstallation de pip fonctionne très bien pour la plupart des utilisateurs, comme indiqué sur cette page github:
la source
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
/usr/bin/python3 -> /usr/bin/python3.6
même si le système était passé à python3.7.la source
Cela a fonctionné pour moi:
Par
install --upgrade
, je veux dire tout ce que vous essayez d'installer.la source