web-dev-qa-db-fra.com

L'installation PIP Python génère TypeError: type (s) d'opérande non pris en charge pour - =: 'Réessayer' et 'int'

Utiliser pip install pour n'importe quel module apparemment sur mon système Ubuntu 16.04 avec python 2.7.11+ lève cette erreur:

TypeError: unsupported operand type(s) for -=: 'Retry' and 'int'

Quel est le problème avec pip? Comment pourrais-je le réinstaller, si nécessaire?

Mise à jour: la trace complète est en dessous

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'
69
devautor

Ubuntu est livré avec une version de PIP de Précambrien et c’est la façon dont vous devez la mettre à niveau si vous ne voulez pas passer des heures et des heures à résoudre les problèmes liés aux pip.

apt-get remove python-pip python3-pip
wget https://bootstrap.pypa.io/get-pip.py
python get-pip.py
python3 get-pip.py

Comme vous l'avez observé, j'ai inclus des informations pour Python 2.x et 3.x 

63
sorin

Si vous êtes derrière un proxy, vous devez effectuer quelques étapes de configuration supplémentaires avant de démarrer l'installation. Vous devez définir la variable d’environnement http_proxy sur l’adresse proxy. En utilisant bash, ceci est accompli avec la commande 

export http_proxy="http://user:[email protected]:port/" 

Vous pouvez également fournir le 

--proxy=[user:pass@]url:port 

paramètre à piper. La portion [user:pass@] est facultative.

28
Livruen Nati

Tout d'abord, ce problème est dû à des problèmes de réseau. Désinstaller et réinstaller tout ne vous sera d'aucune aide. Vous êtes probablement derrière un proxy et dans ce cas, vous devez définir un proxy.

Mais dans mon cas, je faisais face au problème parce que je n'étais pas derrière un proxy. En général, je travaille derrière un proxy, mais lorsque je travaille à domicile, je règle le proxy sur Aucun dans les paramètres réseau.

Mais je continuais à avoir les mêmes erreurs même après avoir supprimé les paramètres de proxy.

Donc, quand j'ai tapé 

env | grep proxy

J'ai trouvé quelque chose comme ça: 

http_proxy=http://127.0.0.1:1234/

Et c’est la raison pour laquelle j’avais toujours la même erreur, même lorsque je pensais avoir supprimé les paramètres de proxy.

Pour supprimer ce proxy, tapez

unset http_proxy

Suivez la même approche pour toutes les autres entrées, telles que https_proxy.

12
thisisashwani

Ce qui se passe ici, c’est que les versions vendorées de request/urllib3 s’entrechoquent lorsqu’elles sont importées à deux endroits différents (même code, mais noms différents). Si vous avez ensuite une erreur de réseau, il ne réessaie pas pour obtenir la roue, mais échoue avec l'erreur ci-dessus. Voir ici pour une analyse plus approfondie de cette erreur.

Pour la solution avec pip système, voir ci-dessus .

Si vous rencontrez ce problème dans un virtualenv construit avec python -m venv (qui copie toujours les roues de /usr/share/python-wheels, même si vous avez installé pip séparément), le moyen le plus simple de «réparer» les problèmes semble être:

  1. créer le virtualenv: /usr/bin/python3.6 -m venv ...
  2. installez requests dans l'environnement (cela pourrait provoquer l'erreur ci-dessus): <venv>/bin/pip install requests
  3. supprimer les versions copiées de requests qui seraient utilisées par pip: rm <venv>/share/python-wheels/{requests,chardet,urllib3}-*.whl

Désormais, un <venv>/bin/pip utilise la version installée de requests qui a été vendue par urllib3. 

10
Jan Katins

le port 443 n'est pas ouvert, autorisez simplement le port TCP 443 personnalisé si sur AWS, ouvrez le port 443 pour les connexions sortantes ...

5
Deepak

La mise à jour de setuptools a bien fonctionné pour moi.

Sudo pip install --upgrade setuptools

Je recevais cette erreur pour toute installation de paquet utilisant pip. Plus tard, j'ai découvert que pip nécessite que les variables http_proxy et https_proxy soient exécutées derrière un proxy. Après avoir défini ces 2 variables d’environnement, ce problème est résolu.

export http_proxy=http://<username>:<passowrd>@<proxy_ip>:<proxy_port>/
export https_proxy=https://<username>:<passowrd>@<proxy_ip>:<proxy_port>/
3
rashok

Juste mise à niveau pip a fonctionné pour moi:

pip install --upgrade pip

3
cleicar

Cela m’arrive lorsque je travaille derrière le proxy ..__ Je résous ce problème simplement en

pip install --proxy http: // proxyAddress: Port Package_To_Be_Installed

2
arslan ahmed mir

J'ai essayé la solution répondue ci-dessus:

apt-get remove python-pip python3-pip
wget https://bootstrap.pypa.io/get-pip.py
python get-pip.py
python3 get-pip.py

Quand j'ai essayé 

python get-pip.py 
python3 get-pip.py

J'ai eu ce message

 Could not install packages due to an EnvironmentError:
[Errno 13] Permission denied: /usr/bin/pip3 Consider using the --user
 option or check the permissions.

J'ai fait ce qui suit et ça marche 

python3 -m venv env
source ./env/bin/activate
Sudo apt-get update 
apt-get remove python-pip python3-pip
wget https://bootstrap.pypa.io/get-pip.py
python get-pip.py
python3 get-pip.py
pip3 install pip
Sudo easy_install pip
pip install --upgrade pip
1
i_th

J'ai eu cette erreur lorsque j'essayais de créer une virtualenv avec la commande virtualenv myVirtualEnv. Je viens d'ajouter une Sudo avant la commande; tout a résolu.

1
Zeinab Abbasimazar

Je faisais face au même problème en essayant d'installer l'outil awscli sur une instance ec2 ..__ J'ai modifié le groupe de sécurité pour autoriser l'accès entrant et sortant au port 443, ce qui a résolu le problème.

0
Yogesh Gupta

Pour ma part, il s’avère que wlan0 était en panne, ce qui m’a empêché de me connecter. Ainsi, s’assurer que wlan0 était actif permettait à pip/pip3 de fonctionner sans problème.

0
japharl

Ceci est la solution de travail à ce problème que j'ai trouvé.

Sudo apt-get clean
cd /var/lib/apt
Sudo mv lists lists.old
Sudo mkdir -p lists/partial
Sudo apt-get clean
Sudo apt-get update
0
PSN

Solution:
1. Sudo apt remove python-pip
2. pip3 install pip (ou installez pip par get-pip.py )

Pourquoi:
Cette erreur est survenue sur le pip 8.0.1 installé par apt-get. Et ne s'est produit que lorsque votre réseau est instable. 

Si vous avez un pip installé avec apt, il cache le pip que vous avez installé par d'autres moyens, vous devriez donc d'abord supprimer apt. 

J'ai déconnecté le réseau et testé les versions 8.0.1, 9.0.3, 10.x installées avec pip3 ou get-pip.py, aucune erreur ne s'est produite. Donc, je pense que seule la version apt du pip 8.0.1 a ce bogue, les autres vont bien.

0
Haocheng Yang

Dans mon cas, j’avais ouvert Pycharm en mode Sudo et exécutais pip install nltk dans un terminal pycharm qui affichait cette erreur. courir avec Sudo pip install résout l'erreur.

0
Aayush Arora

J'ai aussi eu ce problème. Initialement, un proxy a été défini et fonctionne bien. Ensuite, je me suis connecté à un réseau où il ne passe pas par un proxy. Après avoir désactivé proxy proxy, obtenez à nouveau des travaux.

unset http_proxy; unset http_prox;  unset HTTP_PROXY; unset HTTPS_PROXY
0
GPrathap

Bizarrement, si je supprime le proxy de l'environnement et que je l'ajoute à la ligne de commande, cela fonctionne pour moi. Par exemple, pour mettre à niveau pip lui-même:

env http_proxy= https_proxy= pip install pip --upgrade --proxy 'http://proxy-url:80'

Mon problème était d'avoir le proxy dans l'environnement. Il semblerait que pip n’honore que l’argument en question.

0
Eric