Message d'erreur après la mise à niveau de pep: impossible d'importer le nom de 'main'
Chaque fois que je suis en train d'installer un package à l'aide de pip, j'obtiens cette erreur d'importation:
guru@guru-notebook:~$ pip3 install numpy
Traceback (most recent call last):
File "/usr/bin/pip3", line 9, in <module>
from pip import main
ImportError: cannot import name 'main'
guru@guru-notebook:~$ cat `which pip3`
#!/usr/bin/python3
# GENERATED BY DEBIAN
import sys
# 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.
from pip import main
if __name__ == '__main__':
sys.exit(main())
Il fonctionnait bien plus tôt, je ne suis pas sûr de savoir pourquoi il est en train de lancer cette erreur.
J'ai cherché sur cette erreur, mais ne peut pas trouver quelque chose à réparer.
S'il vous plaît laissez-moi savoir si vous avez besoin de plus de détail, je vais mettre à jour ma question.
Une autre discussion sur ce lien.
J'ai eu le même problème parce que j'ai utilisé
J'ai eu le même problème parce que j'ai utilisé
pip install --upgrade pip
à la mise à niveau pip sur un serveur où j'din ont pas de privilèges d'administrateur. La désinstallation de pip avec python -m pip uninstall pip
résolu mon problème.OriginalL'auteur g_p | 2018-04-14
Vous devez vous connecter pour publier un commentaire.
Vous devez avoir, par inadvertance, à niveau de votre système pip (probablement par le biais de quelque chose comme
sudo pip install pip --upgrade
)pip 10.x ajuste où ses entrailles sont situés. Le
pip3
de commande que vous voyez est celui fourni par votre responsable de paquet (probablement basé sur debian ici?) et n'est pas un fichier géré par le pip.Vous pouvez en lire plus à ce sujet sur pip est issue tracker
Vous aurez probablement envie de pas mise à niveau de votre système pip et au lieu d'utiliser un virtualenv.
Pour récupérer le
pip3
binaires, vous aurez besoin desudo python3 -m pip uninstall pip && sudo apt install python3-pip --reinstall
.Si vous voulez continuer dans non pris en charge "territoire" (mise à niveau d'un système de package en dehors du système de package manager), vous pouvez probablement vous en sortir avec
python3 -m pip ...
au lieu depip3
.sudo apt install python3-pip --reinstall
n'a pas résolu le problème,cependant, je peux installer le paquet à l'aide depython3 -m pip
. Merci pour votre aide. Je suis le marquant comme acceptée.mise à jour de la "correction" directions -- juste vérifié dans le panneau (je l'ai fait que la première fois!)
même problème,
python3 -m pip
a fait le travail.Je needet utiliser la commande "python -m pip désinstaller pip' en tant que 'sudo pip désinstaller pip' a donné une erreur similaire à la question d'origine
Merci! Que les contribué à! Utilisation
sudo python -m pip uninstall pip && sudo apt install python-pip --reinstall
pour python2!OriginalL'auteur Anthony Sottile
Pour de la famille Ubuntu, Debian, Linux Mint utilisateurs
Merci à Anthony d'explication ci-dessus, vous pouvez conserver votre système d'origine pip (dans /usr/bin/et dist-packages/) et retirer le installé manuellement pip (dans ~/.local/) pour résoudre le conflit:
$ python3 -m pip uninstall pip
Ubuntu/Debian pip v8.1.1 (16.04) à partir de
python3-pip
paquet debian (voir$ pip3 -V
) montre les mêmes résultats de recherche que les derniers pip v10.0.1, et installe les derniers modules de PyPI l'amende juste. Il a un travailpip
de commande (déjà dans le $PATH), en plus de la belle--user
option patché par défaut depuis 2016. En regardant pip notes de version, les versions les plus récentes sont pour la plupart au sujet de cas d'utilisation de corrections de bugs et de nouvelles fonctionnalités, de sorte pas tout le monde doit se précipiter la mise à niveau de pep pour l'instant. Et la nouvelle pip 10 peut être déployé à Python virtualenvs, de toute façon.Mais indépendamment de pips, votre système d'exploitation permet d'installer rapidement des communes des modules Python (y compris numpy) avec APT, sans la nécessité pour le pep, par exemple:
$ sudo apt install python3-numpy python3-scipy
(avec système de dépendances)$ sudo apt install python3-pip
(Debian-patché pip, un peu vieux, mais il n'a pas d'importance)Paquet de noms précédés
python-
sont pour Python 2; et avec le préfixepython3-
sont pour Python 3 (ex: python3-pandas). Il y a des milliers, et ils subissent des tests d'intégration au sein de Debian et Ubuntu. Sauf si vous cherchez à installer à chaque niveau de l'utilisateur (pip install --user
option) ou dans le virtualenv/venv, apt pourrait être ce dont vous avez besoin. Ces paquets sont accessibles à partir de virtuel envs trop, comme virtualenv sera gracieusement tomber en arrière à l'aide du système libs sur l'importation si votre envs n'ont pas donné des copies des modules.Votre personnalisé (pip
--user
) par utilisateur des modules de~/.local/lib
va se substituer à eux aussi.Remarque, puisque c'est un à l'échelle du système installation, vous feriez rarement besoin de les enlever (il faut être attentif au sujet de dépendances OS). C'est pratique pour les paquets avec de nombreuses dépendances (comme avec ou scipy matplotlib), APT permettra de garder une trace et de fournir tous les système libs et C extensions, tandis qu'avec le pip vous avez aucune de ces garanties.
En fait, à l'échelle du système les paquets Python (contrairement à par utilisateur, la maison dir niveau, ou moins), Ubuntu attend en utilisant le gestionnaire de paquets APT (plutôt que
sudo pip
) pour éviter de casser l'OS:sudo pip3
cible le même/usr/lib/python3/dist-packages
répertoire où APT magasins OS-sensibles modules. Récente de Debian/Ubuntu rejets dépendent fortement de Python 3, de sorte que son pré-installé les modules sont gérés parapt
et ne devrait pas être modifié.Donc, si vous utilisez
pip3 install
de commande, veuillez vous assurer qu'il fonctionne dans un virtuel isolé environnement de dev, comme avec virtualenv (sudo apt install python3-virtualenv
), ou avec Python3 intégré (-m venv
), ou au niveau de l'utilisateur (--user
pip option, par défaut dans Ubuntu fourni pip depuis 2016), mais pas à l'échelle du système (jamaissudo pip3
!), parce que pip interfère avec le fonctionnement du gestionnaire de paquet APT et peut affecter Ubuntu OS composants lorsqu'un système utilisé module python est modifié de façon inattendue. Bonne chance!P. S. Tous les est au-dessus de l '"idéal" de la solution (Debian/Ubuntu façon).
Si vous encore souhaitez utiliser la nouvelle pip3 v10 exclusivement, il y a 3 solutions:
bash
) - et pip3 v10 devient disponible (voirpip3 -V
). debian pip3 v8 reste installé mais est cassé; ou$ hash -d pip3 && pip3 -V
pour actualiser pip3 chemin d'accès dans le $PATH. debian pip3 v8 reste installé mais est cassé; ou$ sudo apt remove python3-pip && hash -d pip3
pour désinstaller debian pip3 v8 complètement, en faveur de votre nouveau pip3 v10.Remarque: Vous aurez toujours besoin d'ajouter
--user
drapeau de non-debian-fourni pip, sauf si vous êtes dans un virtualenv! (il déploie les paquets python pour~/.local/
, par défaut dans debian/ubuntu-fourni python3-pip et python-pip depuis 2016). Votre utilisation de pip à 10 à l'échelle du système, en dehors de virtualenv, n'est pas vraiment pris en charge par Ubuntu/Debian. Jamaissudo pip3
!Plus de détails:
https://github.com/pypa/pip/issues/5221#issuecomment-382069604
https://github.com/pypa/pip/issues/5240#issuecomment-381673100
OriginalL'auteur Alex
Nous pouvons effacer l'erreur en modifiant le fichier pip.
Vérifier l'emplacement du fichier:
Accéder à l'emplacement(/usr/bin/pip) et d'ouvrir le terminal
Entrée:
$ sudo nano pip
Vous pouvez le voir:
Changement:
puis ctrl + o écrire les modifications et quitter
Espère que ça va le faire!!
Je vais modifier!! Merci
Ne fonctionne pas ici sur Xenial
Devrait être de travail,Vérifier si est pip2 ou pip3.
A travaillé comme un charme. grâce vijay
OriginalL'auteur vijay athithya
résolu en une seule étape.
J'ai moi aussi été confronté à ce problème, Mais cela peut être résolu simplement en 1 commande sans se soucier autour de et de perdre du temps et je l'ai essayé sur plusieurs systèmes, c'est la solution la plus propre pour cette question. Et c'est:
Pour python3:-
sudo python3 -m pip uninstall pip && sudo apt install python3-pip --reinstall
.Par la présente , vous pouvez simplement installer des paquets à l'aide de
pip3
. pour vérifier l'utilisation depip3 --version
.Pour les versions plus anciennes, utilisation :
sudo python -m pip uninstall pip && sudo apt install python-pip --reinstall
.Par la présente, maintenant, vous pouvez simplement installer des paquets à l'aide de
pip
. pour vérifier l'utilisation depip --version
.Bienvenue @YushanZhang, que dieu me bénisse pour sauver votre vie.... 🙂
OriginalL'auteur Saket
Vérifier si le programme pep a été mis en cache sur un autre chemin, pour ce faire, composez $ qui pip et vérifiez que le chemin d'accès différent de celui qui est invité dans l'erreur, si c'est le cas, exécutez:
Lorsque le cache est clair, pip sera à nouveau au travail.
référence: http://cheng.logdown.com/posts/2015/06/14/-usr-bin-pip-no-such-file-or-directory
OriginalL'auteur Sr.PEDRO
Utilisation
python -m pip install
au lieu depip install
La
pip
(resp.pip3
) exécutable est fourni par votre distribution (python-pip
paquet sur Ubuntu 16.04) et est située à/usr/bin/pip
.Par conséquent, il n'est pas tenu à jour avec les
pip
paquet lui-même que vous mettez à niveau pip, et peuvent se briser.Si vous venez d'utiliser
python -m pip
directement, par exemple dans:il va par le biais de votre Python chemin et trouve la dernière version de pip, et exécute ce fichier.
Il s'appuie sur le fait que ce fichier est exécutable par le biais de
import
, mais c'est un très type standard de l'interface, et donc moins susceptibles de se briser que les hackier Debian script.Alors je vous recommande l'ajout de l'alias de votre
.bashrc
:Testé sous Ubuntu 16.04 après une mise à jour de
pip3
9.0.1 à 18,0.le upvote est assez 🙂
encore me brise le pip3
OriginalL'auteur Ciro Santilli 新疆改造中心 六四事件 法轮功
Je suis en cours d'exécution sur un système où j'ai sudo apt, mais pas de sudo pip. (Et pas su accès.) J'ai retrouvé dans cette même situation en suivant les conseils de pip:
Aucun des autres correctifs ont travaillé pour moi, parce que je n'ai pas assez de privilèges d'administrateur. Cependant, quelques petites choses m'a frappé à la lecture de cette:
Donc, j'ai trouvé cette ligne de commande pour les travaux de revenir me ramener là où j'étais. Si vous utilisez une version différente de celle 8.1.1, vous aurez évidemment voulez changer la partie de la ligne.
C'est la seule chose qui a fonctionné pour moi, mais il a parfaitement fonctionné!
OriginalL'auteur Scott Mermelstein
Les commandes ci-dessus ne fonctionne pas pour moi, mais ceux qui ont été très utiles:
OriginalL'auteur Pierrot
- Je utiliser
sudo apt remove python3-pip
puispip
œuvres.pip
est pour Python 2. OP utilisepip3
, le Python 3 version depip
, que vous venez de supprimer. Ces deux sont distincts et ne sont pas interchangeables.OriginalL'auteur jim gabriel
J'ai rencontré le même problème sur mon Ubuntu 16.04 système. J'ai réussi à le résoudre par une ré-installation de pip avec la commande suivante:
curl https://bootstrap.pypa.io/get-pip.py | sudo python3
curling internet pour le super utilisateur, ce qui pourrait aller mal!
OriginalL'auteur jkjung13
Même chose m'est arrivé sur Pixelbook à l'aide de la nouvelle LXC (strech). Cette solution est très similaire à l'acceptées, avec une différence subtile, whiched fixe pip3 pour moi.
Que choppé la version, et maintenant il fonctionne comme prévu.
Je l'ai trouvé ici ... Python.org: Assurer pip est à jour
OriginalL'auteur fliptopbox
Récupérer avec
python3 -m pip install --user pip==9.0.1
(ou la version de travail)OriginalL'auteur Claire
Vous pouvez résoudre ce problème en réinstallant pip.
Utiliser le code suivant pour réinstaller pip
Pour python2:
Pour python2:
OriginalL'auteur Codemaker
Ce qui a fonctionné pour moi pour corriger l'erreur avec l'aide de
pip3
était:sudo cp -v /usr/local/bin/pip3 /usr/bin/pip3
Tout fonctionne:
Peut-être la nouvelle version 10.0.1 de pip ne pas mettre à jour le binaire dans /usr/bin ?
OriginalL'auteur cryptoboy
Pour la version de Python 2.7 @Anthony solution fonctionne parfaitement, en changeant python3 à python comme suit:
OriginalL'auteur ewalel
importation principal de pip._internal
Modifier le code pip de
/usr/bin/pip3
...OriginalL'auteur Akhilesh N S
boursiers! J'ai le même problème et résolu. Voici ma solution.
Tout d'abord, quand je lance pip installer quelque chose, le message d'erreur comme ceci:
Donc, j'ai le cd dans le fichier /usr/bin/et chat pip3 pour voir le code. Je vois ça:
Et puis je pense qu'il n'était pas dans le chemin d'installation. J'ai donc le cd dans le python3-pip, comme ceci:
ps: vous avez de cd dans la bonne direction dans votre ordinateur
Alors je chat le fichier pour voir les différences(vous pouvez utiliser d'autres opérations pour voir le code):
Et j'ai vu ceci:
Oui, pouvez-vous voir la différence? Je peux comprendre que j'ai à faire dans le fichier le même que le fichier dans /usr/bin/pip3
Alors, j'ai attrapé le code dans /.local/lib/python3.5/site-packages/pip pour remplacer le code dans le fichier /usr/bin/pip3
et le problème disparaît!
ps: pip3 ou pip ont pas de différence dans ce problème.
Je serai heureux si ma solution pour résoudre votre problème!
OriginalL'auteur lin pan
@Cryptoboy dit - vérifier ce que le pep/version de python que vous avez installé
et vérifier alors pas besoin de bibliothèques dans votre .local/lib/dossier.
J'ai fait une sauvegarde de paramètres quand j'étais migration vers de nouvelles Kubuntu et en avait .local/lib/python2.7/dossier dans mon répertoire home. Installé python 3.6. J'ai juste enlevé l'ancien dossier et maintenant tout fonctionne très bien!
OriginalL'auteur Vergil333
Truc et travaille trop
OriginalL'auteur Tejas Tank
J'ai eu ce même message d'erreur, mais
python -m pip
était encore à travailler, donc je l'ai réparé avec l'option nucléairesudo python -m pip install --upgrade pip
. Il l'a fait pour moi.OriginalL'auteur Sergiu