web-dev-qa-db-fra.com

"Échec de la vérification du certificat SSL" à l'aide de pip pour installer des packages

J'essaye d'installer le paquet Scrapy (entre autres) pour python en utilisant pip. J'ai essayé de faire l'installation en utilisant python 3 et python 2, j'ai installé/mis à jour le setuptools comme suit: $ pip3 install --upgrade setuptools, j'ai essayé d'utiliser l'option --trusted-Host comme suit: $ pip3 install --trusted-Host pypi.python.org Scrapy. Mais je reçois toujours le même message d'erreur lorsque je lance $ pip3 install Scrapy. La sortie complète est la suivante:

Collecting Scrapy
  Using cached Scrapy-1.3.2-py2.py3-none-any.whl
Collecting PyDispatcher>=2.0.5 (from Scrapy)
  Using cached PyDispatcher-2.0.5.tar.gz
Collecting service-identity (from Scrapy)
  Using cached service_identity-16.0.0-py2.py3-none-any.whl
Collecting pyOpenSSL (from Scrapy)
  Using cached pyOpenSSL-16.2.0-py2.py3-none-any.whl
Collecting w3lib>=1.15.0 (from Scrapy)
  Using cached w3lib-1.17.0-py2.py3-none-any.whl
Collecting parsel>=1.1 (from Scrapy)
  Using cached parsel-1.1.0-py2.py3-none-any.whl
Collecting queuelib (from Scrapy)
  Using cached queuelib-1.4.2-py2.py3-none-any.whl
Requirement already satisfied: six>=1.5.2 in /Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages (from Scrapy)
Collecting Twisted>=13.1.0 (from Scrapy)
  Using cached Twisted-17.1.0.tar.bz2
    Complete output from command python setup.py Egg_info:
    Download error on https://pypi.python.org/simple/incremental/: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:749) -- Some packages may not be found!
    Couldn't find index page for 'incremental' (maybe misspelled?)
    Download error on https://pypi.python.org/simple/: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:749) -- Some packages may not be found!
    No local packages or working download links found for incremental>=16.10.1
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/private/var/folders/gy/5xt04_452z791v1qjs1yzxkh0000gn/T/pip-build-nkv4jozy/Twisted/setup.py", line 21, in <module>
        setuptools.setup(**_setup["getSetupArgs"]())
      File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/distutils/core.py", line 108, in setup
        _setup_distribution = dist = klass(attrs)
      File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/setuptools/dist.py", line 317, in __init__
        self.fetch_build_eggs(attrs['setup_requires'])
      File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/setuptools/dist.py", line 372, in fetch_build_eggs
        replace_conflicting=True,
      File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pkg_resources/__init__.py", line 851, in resolve
        dist = best[req.key] = env.best_match(req, ws, installer)
      File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pkg_resources/__init__.py", line 1123, in best_match
        return self.obtain(req, installer)
      File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pkg_resources/__init__.py", line 1135, in obtain
        return installer(requirement)
      File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/setuptools/dist.py", line 440, in fetch_build_Egg
        return cmd.easy_install(req)
      File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/setuptools/command/easy_install.py", line 668, in easy_install
        raise DistutilsError(msg)
    distutils.errors.DistutilsError: Could not find suitable distribution for Requirement.parse('incremental>=16.10.1')

    ----------------------------------------
Command "python setup.py Egg_info" failed with error code 1 in /private/var/folders/gy/5xt04_452z791v1qjs1yzxkh0000gn/T/pip-build-nkv4jozy/Twisted/

Je suis sur un Mac OS version 10.12.1 et utilise python 3.6 . Quelqu'un sait-il une solution à ce problème?

7
imc

Comme indiqué ici https://bugs.python.org/issue28150 dans les versions précédentes de python, Apple fournissait les packages OpenSSL mais ne les fournit plus. 

L'exécution de la commande pip install certifi puis pip install Scrapy l'a corrigée pour moi

7
imc

pip install --trusted-Host pypi.python.org autopep8 (any package name) 

Cette commande ajoutera pypi.python.org aux sources sécurisées et installera tout le paquet requis.

J'ai moi-même rencontré l'erreur et cette commande m'a aidé à installer tous les paquets pip de python.

10
Teja Swaroop

Une remarque sur les réponses ci-dessus: il ne suffit plus d’ajouter simplement pypi.python.org aux hôtes approuvés dans le cas où vous êtes derrière un proxy interceptant HTTPS (nous avons zScaler).

J'ai actuellement les éléments suivants dans mon pip.ini:

trusted-Host = pypi.python.org pypi.org files.pythonhosted.org

Lancer pip -v install pkg vous donnera des indications sur les hôtes qui pourraient devoir être ajoutés.

8
Greg

Quelque chose à essayer - dites à python de ne pas utiliser https avec la directive index et une adresse http: // (pas https: //) 

pip install --index-url=http://pypi.python.org/simple/ --trusted-Host pypi.python.org  Scrapy

Vous êtes peut-être derrière un pare-feu d’entreprise et j’ai eu des expériences où même ce qui précède a échoué, bien que je ne prétende pas en savoir assez sur les pare-feu ou SSL pour comprendre pourquoi. Dans ce cas, la seule façon pour moi de contourner ce problème était d’obtenir un fichier de certificat et de le transmettre à Python. Voir la réponse de kenorb ici pour plus de détails. 

3
gbtimmon

Il semble que Scrapy échoue car l'installation de Twisted échoue, car échec parce que incremental échoue. Lancer pip install --upgrade pip && pip install --upgrade incremental a corrigé cela pour moi.

1
cowlinator

Vous pouvez essayer Sudo apt-get upgrade pour obtenir les derniers packages. Il a résolu le problème sur ma machine.

0
marw

On dirait qu'ils utilisent aussi pypi.org maintenant. J'ai ajouté ce qui suit à% appdata%\pip\pip.ini et j'ai pu télécharger mes paquets derrière un proxy interceptant HTTPS:

trusted-Host = pypi.python.org files.pythonhosted.org pypi.org

0
Chris Lope