Python PIP Install jette TypeError: unsupported operand type(s) -=: 'Retry' et de 'int'
À l'aide de pip install
pour n'importe quel module apparemment sur mon Ubuntu 16.04 système avec python 2.7.11+ lance ce message d'erreur:
TypeError: unsupported operand type(s) for -=: 'Retry' and 'int'
Quel est le problème avec le pip? Comment pourrais-je le réinstaller, si nécessaire?
Mise à jour: Plein de sperme est en dessous de
sunny@sunny:~$ pip install requests
Collecting requests
Exception:
Traceback (most recent call last):
File "/usr/lib/python2.7/dist-packages/pip/basecommand.py", line 209, in main
status = self.run(options, args)
File "/usr/lib/python2.7/dist-packages/pip/commands/install.py", line 328, in run
wb.build(autobuilding=True)
File "/usr/lib/python2.7/dist-packages/pip/wheel.py", line 748, in build
self.requirement_set.prepare_files(self.finder)
File "/usr/lib/python2.7/dist-packages/pip/req/req_set.py", line 360, in prepare_files
ignore_dependencies=self.ignore_dependencies))
File "/usr/lib/python2.7/dist-packages/pip/req/req_set.py", line 512, in _prepare_file
finder, self.upgrade, require_hashes)
File "/usr/lib/python2.7/dist-packages/pip/req/req_install.py", line 273, in populate_link
self.link = finder.find_requirement(self, upgrade)
File "/usr/lib/python2.7/dist-packages/pip/index.py", line 442, in find_requirement
all_candidates = self.find_all_candidates(req.name)
File "/usr/lib/python2.7/dist-packages/pip/index.py", line 400, in find_all_candidates
for page in self._get_pages(url_locations, project_name):
File "/usr/lib/python2.7/dist-packages/pip/index.py", line 545, in _get_pages
page = self._get_page(location)
File "/usr/lib/python2.7/dist-packages/pip/index.py", line 648, in _get_page
return HTMLPage.get_page(link, session=self.session)
File "/usr/lib/python2.7/dist-packages/pip/index.py", line 757, in get_page
"Cache-Control": "max-age=600",
File "/usr/share/python-wheels/requests-2.9.1-py2.py3-none-any.whl/requests/sessions.py", line 480, in get
return self.request('GET', url, **kwargs)
File "/usr/lib/python2.7/dist-packages/pip/download.py", line 378, in request
return super(PipSession, self).request(method, url, *args, **kwargs)
File "/usr/share/python-wheels/requests-2.9.1-py2.py3-none-any.whl/requests/sessions.py", line 468, in request
resp = self.send(prep, **send_kwargs)
File "/usr/share/python-wheels/requests-2.9.1-py2.py3-none-any.whl/requests/sessions.py", line 576, in send
r = adapter.send(request, **kwargs)
File "/usr/share/python-wheels/CacheControl-0.11.5-py2.py3-none-any.whl/cachecontrol/adapter.py", line 46, in send
resp = super(CacheControlAdapter, self).send(request, **kw)
File "/usr/share/python-wheels/requests-2.9.1-py2.py3-none-any.whl/requests/adapters.py", line 376, in send
timeout=timeout
File "/usr/share/python-wheels/urllib3-1.13.1-py2.py3-none-any.whl/urllib3/connectionpool.py", line 610, in urlopen
_stacktrace=sys.exc_info()[2])
File "/usr/share/python-wheels/urllib3-1.13.1-py2.py3-none-any.whl/urllib3/util/retry.py", line 228, in increment
total -= 1
TypeError: unsupported operand type(s) for -=: 'Retry' and 'int'
- Bien sûr, ajoutant que les info
- Alors d'où vient les roues viennent de?
pip
normalement l'utilisation d'un intégré àrequests
paquet, etrequests
normalement l'utilisation d'un intégré àurllib3
paquet. Ces roues ne sont pas intégrées versions, et sont probablement incompatible avec l'pip
sous-classe d'une partie de ce code. déplacer/usr/share/python-wheels
à part peut-être? - Je m'attends à
pip
à utiliserpip/_vendor/requests/
etpip/_vendor/requests/packages/urllib3/
, pas/usr/share/python-wheels/requests-2.9.1-py2.py3-none-any.whl/requests
ou/usr/share/python-wheels/urllib3-1.13.1-py2.py3-none-any.whl/urllib3
. - J'ai vraiment aucune idée sur ce sujet! Où dois-je être à la recherche d'info sur ce, ou de ce que pouvais-je faire?
- Désolé, pas facile de répondre ici; juste essayer de diagnostiquer votre problèmes. Le traceback est inattendu et des points à un affrontement entre les versions. C'est pourquoi, normalement,
requests
etpip
l'intégration de leurs dépendances. Votre traceback montre toute les versions incorporées ne sont pas utilisés, mais pourquoi ce n'est que je ne sais pas. - Est-il une manière que je pourrais réinstaller pip fraîchement, ou d'un autre gestionnaire de paquets asa une alternative pour je besoin pour utiliser Théano!
- Vous pourriez essayer et ré-exécutez
get-pip.py
pour installer une version de pip, puis continuer à partir de là. - Je suis 407 proxy authentication required et "Exigence déjà à jour: pip dans /usr/lib/python2.7/dist-packages"
- Regardez les
/usr/lib/python2.7/dist-packages/pip/download.py
fichier; les importations en haut doit correspondre à celle de la version originale; à noter que lefrom pip._vendor
importations. Si non, supprimer tous/usr/lib/python2.7/dist-packages/pip
et ré-installer. - Ils ne correspondent, maintenant ce qui?
- Désolé, de bonnes idées. Perplexe quant à la façon dont le
pip._vendor
importations de fin de chargement des fichiers à partir de/usr/share/python-wheels
, mais j'avais besoin d'accéder à votre machine pour déboguer ce, étape par étape, avec un débogueur. - puisque les réponses ne sont pas d'accord les uns avec les autres, il serait formidable de voir une accepté de répondre . . .
- est-il une réponse définitive à cette question ? J'ai essayé la plupart de ceux énumérés ci-dessous, mais d'aucune aide. Le seul moyen est de réinstaller python que je ne veux pas faire comme cela est prod serveur, et il peut avoir un impact sur les scripts existants. Donc, il y a une manière bien déterminée autre que de réinstaller python?
Vous devez vous connecter pour publier un commentaire.
Ubuntu est livré avec une version de PIP à partir du précambrien, et c'est la façon dont vous avez à la mise à jour si vous ne voulez pas passer des heures et des heures de débogage pip questions connexes.
Comme vous l'avez remarqué, j'inclus les informations pour Python 2.x et 3.x
python3.6 get-pip.py
pip
qui a restent fixées, pour plusieurs communiqués de maintenant: github.com/pypa/pip/issues/4779pip
encore la fixe à compter d'aujourd'hui (mai 2018). Aucune idée de pourquoi ça marche, mais quand même...Si vous êtes derrière un proxy, vous devez effectuer certaines des étapes de configuration supplémentaires avant de commencer l'installation. Vous devez définir la variable d'environnement http_proxy à l'adresse du proxy. À l'aide de bash ceci est accompli avec la commande
Vous pouvez également fournir le
paramètre de pip. Le
[user:pass@]
partie est facultative.Tout d'abord, ce problème existe à cause de problèmes de réseau, et de le désinstaller et re-installer tout ne sera pas d'une grande aide. Probablement vous êtes derrière un proxy, et dans ce cas, vous devez configurer le proxy.
Mais dans mon cas, j'ai été confronté au problème parce que je n'étais pas derrière un proxy. Généralement, je travaille derrière un proxy, mais lorsque vous travaillez de la maison, j'ai mis le proxy à Aucun dans les paramètres Réseau.
Mais j'ai toujours les mêmes erreurs, même après avoir retiré les paramètres de proxy.
Donc, quand j'ai fait le type de
J'ai trouvé quelque chose comme ceci :
Et ce fut la raison que j'ai toujours la même erreur, même quand je pensais que j'avais enlevé les paramètres de proxy.
À annuler le présent formulaire de procuration, type
Suivre la même approche pour tous les autres entrées, telles que https_proxy.
Ce qui se passe ici est que le vendored versions de la demande/urllib3 choc lorsqu'ils sont importés dans deux endroits différents (même code, mais des noms différents). Ensuite, si vous avez une erreur réseau, il n'a pas de nouvelle tentative pour obtenir la roue, mais échoue avec l'erreur ci-dessus. Voir ici pour approfondir cette erreur.
Pour la solution avec le système de pep, voir ci-dessus.
Si vous avez ce problème dans un virtualenv construit par
python -m venv
(qui copie toujours les roues de/usr/share/python-wheels
, même si vous avez pip installé séparément), la façon la plus simple de le "réparer" semble être:/usr/bin/python3.6 -m venv ...
requests
dans l'environnement (ce qui pourrait soulever l'erreur ci-dessus):<venv>/bin/pip install requests
requests
qui serait utilisé par le pip:rm <venv>/share/python-wheels/{requests,chardet,urllib3}-*.whl
Maintenant un
<venv>/bin/pip
utilise la version installée derequests
qui a urllib3 vendored./usr/share/python-wheels/urllib3-1.19.1-py2.py3-none-any.whl
et c'est corrigé maintenant (sans virtualenv)./usr/share/python-wheels
,python -m venv
ne va pas créer un utilisable<venv>/bin/pip
plus. Donc, si vous supprimez ces fichiers, vous devez être sûr que vous n'en avez pas besoin. Si vous avez besoin à la fois d'un système de pip et un venv pip, vous avez besoin de faire installer le système avecget-pip.py
(Voir stackoverflow.com/a/37531821/1380673) et vous avez besoin de supprimer la whl fichiers dans chaque venv.La mise à jour de setuptools a travaillé très bien pour moi.
le port 443 est pas ouverte, juste permettre personnalisé de port tcp 443 si sur AWS, sinon ouvrir le port 443 pour les connexions sortantes ...
Juste la mise à niveau pip a fonctionné pour moi:
pip install --upgrade pip
J'ai été faire cette erreur pour n'importe quel package d'installation à l'aide de
pip
. Plus tard, j'ai trouvé que le pep exigehttp_proxy
ethttps_proxy
variable de courir derrière un proxy. Après la définition de ces 2 variables d'environnement ce problème est résolu.Ce qui m'arrive quand je suis en train de travailler derrière le proxy.
- Je résoudre ce problème simplement en
pip install --proxy http://proxyAddress:Port Package_To_Be_Installed
J'ai le même problème lors de l'installation d'un RaspberryPI TFT de Adafruit avec pitft.sh /adafruit-pitft.sh.
Je ne suis pas heureux sur le codage des styles avec des erreurs à partir de quelque part pour être interprété d'une certaine manière - comme on peut le voir par les réponses précédentes.
Remarque: Le type d'erreur exception de retry.py est évidemment un bug, causée par une unappropriate attribution et le calcul d'une instance de la classe Répondre à un int avec la valeur par défaut de 10 - quelque part dans le code...
Devrait être fixé soit par l'ajout d'une place-opérateur, ou la fixation de l'erreur d'attribution.
Donc essayé d'analyser et patch de l'erreur elle-même d'abord. L'erreur dans mon cas le cas est le même - retry.py appelé par pip.
Le script d'installation adafruit-pitft.sh /pitft.sh essaie d'appliquer urllib3 qui lui-même tente d'installer imbriqués les dépendances par pip, de sorte que le même message d'erreur.
https://github.com/adafruit/Raspberry-Pi-Installer-Scripts/blob/master/adafruit-pitft.sh
https://github.com/adafruit/Raspberry-Pi-Installer-Scripts
La répartition actuelle(basée sur debian-9.6.0/étirement):
Suivantes - sale *:) - patch permet à un sondage trace de l'erreur:
Le sondage de sortie avec le patch temporaire est(affiché deux fois...?):
Donc dans mon cas en fait de deux choses l'origine de l'erreur, ce qui peut varier dans d'autres environnements:
Mon environnement d'installation est en mode hors connexion à partir d'un serveur debian+raspbian miroir, ainsi
ne souhaitez pas définir le proxy...
J'ai donc procédé par le manuel d'installation du composant manquant evdev:
télécharger evdev de PyPI(ou, par exemple, à partir de github.com):
https://pypi.org/project/evdev/
https://files.pythonhosted.org/packages/7e/53/374b82dd2ccec240b7388c65075391147524255466651a14340615aabb5f/evdev-1.1.2.tar.gz
Décompresser et l'installer manuellement comme racine l'utilisateur pour tous les comptes locaux, ainsi détecté comme étant installée:
Appel du script d'installation de nouveau:
Si vous passez en ligne en direct PyPI accès:
vérifier votre routage + pare-feu pour accéder à pypi.org
définir un proxy si nécessaire (http_proxy/https_proxy)
Et cela fonctionne..
Espère que cette aide dans d'autres cas également.
Arno-Peut Uestuensoez
----------------------------------------------
Voir aussi: question - 35334: https://bugs.python.org/issue35334
----------------------------------------------
Voir maintenant: question - 1486: https://github.com/urllib3/urllib3/issues/1486
pour le fichier: https://github.com/urllib3/urllib3/blob/master/src/urllib3/util/retry.py
J'ai été confronté problème similaire, tout en essayant d'installer awscli outil sur une instance ec2.
J'ai changé le groupe de sécurité à autoriser le port 443 accès entrant et sortant et qui a résolu le problème pour moi.
J'ai eu ce message d'erreur quand j'essaie de créer une
virtualenv
avec la commandevirtualenv myVirtualEnv
. J'ai juste ajouté unsudo
avant la commande; il a résolu de tout.J'ai essayé la solution répondu ci-dessus:
Quand j'ai essayé
J'ai eu ce message
Je n'ai la suite et il fonctionne
J'ai aussi eu ce problème. D'abord, un proxy est réglé et fonctionne bien. Puis je l'ai connecté à un réseau où il ne veut pas passer par un proxy. Après la suppression de proxy pip encore acquérir des œuvres.
Bizarrement si je supprimer le proxy de l'environnement et de l'ajouter à la ligne de commande, ça marche pour moi. Par exemple, pour la mise à niveau
pip
lui-même:Mon problème était d'avoir le proxy dans l'environnement. Il semble que pip que les honneurs de la une en argument.
C'est la solution à ce problème j'ai trouvé.
Solution:
1.
sudo apt remove python-pip
2.
pip3 install pip
(ou installer pip par get-pip.py)Pourquoi:
Cette erreur s'est produite sur le pep 8.0.1 qui a installé par apt-get. Et il advint que lorsque votre réseau est instable.
Si vous avez un pépin installé avec apt, il cache le pip que vous avez installés par d'autres moyens, de sorte que vous devez supprimer l'un apt premier.
J'ai déconnecté du réseau et testé 8.0.1, 9.0.3, 10.x les 3 versions installées avec pip3 ou get-pip.py, aucune erreur ne s'est produite. Donc, je pense que l'apt version de pip 8.0.1 a ce bug, les autres, c'est ok.
Pour moi, il s'avère que wlan0 a diminué, ce qui a entraîné m'étant incapable de se connecter sur. Donc, veiller à ce que wlan0 est permis pip /pip3 de travail sans problème.
Dans mon cas, j'avais ouvert Pycharm en mode sudo, et était en cours d'exécution du pip install nltk dans pycharm terminal qui a montré cette erreur. en cours d'exécution avec la commande sudo pip install résout l'erreur.