Pip: SSL: CERTIFICATE_VERIFY_FAILED com Python 3.6.0

Criado em 24 dez. 2016  ·  23Comentários  ·  Fonte: pypa/pip

  • Versão do pip: 9.0.1
  • Versão do Python: 3.6.0
  • Sistema operacional: macOS Sierra

Descrição:

Estou recebendo um erro de certificado para pypi.python.org quando executo pip install -U channels . Não sei se o problema está relacionado a pip ou Python 3.6.0 ou outra coisa. Eu tentei as seguintes sugestões, mas nenhuma delas funcionou.

pip --trusted-host pypi.python.org install -U channels

export PIP_CERT=/Users/user/Desktop/certificate_which_i_obtained_from_pypi_dot_python_dot_org.crt
pip install -U channels

O seguinte cacert.pem é o certificado de curl .
pip --cert /Users/user/cacert.pem install -U channels

Também suspeito que o problema possa ter algo a ver com o Python 3.6.0. Porque considere a seguinte saída:

user<strong i="25">@host</strong>:~$ python
Python 3.6.0 (v3.6.0:41df79263a11, Dec 22 2016, 17:23:13) 
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import ssl
>>> context = ssl.create_default_context()
>>> context.cert_store_stats()
{'x509': 0, 'crl': 0, 'x509_ca': 0}
>>> context.get_ca_certs()
[]
>>> 

O que eu executei:

(virtualenv) user<strong i="29">@host</strong>:~/Documents/virtualenv$ pip install -U channels
Collecting channels
  Using cached channels-0.17.3-py2.py3-none-any.whl
Collecting asgiref>=0.13 (from channels)
  Using cached asgiref-1.0.0-py2.py3-none-any.whl
Collecting daphne>=0.14.1 (from channels)
  Using cached daphne-0.15.0-py2.py3-none-any.whl
Requirement already up-to-date: Django>=1.8 in ./lib/python3.6/site-packages (from channels)
Collecting six (from asgiref>=0.13->channels)
  Using cached six-1.10.0-py2.py3-none-any.whl
Collecting twisted>=16.0 (from daphne>=0.14.1->channels)
  Using cached Twisted-16.6.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/45/r4yr9bbj29dfbtxqv75_785m0000gn/T/pip-build-02d49zb3/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 "/Users/user/Documents/virtualenv/lib/python3.6/site-packages/setuptools/dist.py", line 316, in __init__
        self.fetch_build_eggs(attrs['setup_requires'])
      File "/Users/user/Documents/virtualenv/lib/python3.6/site-packages/setuptools/dist.py", line 371, in fetch_build_eggs
        replace_conflicting=True,
      File "/Users/user/Documents/virtualenv/lib/python3.6/site-packages/pkg_resources/__init__.py", line 846, in resolve
        dist = best[req.key] = env.best_match(req, ws, installer)
      File "/Users/user/Documents/virtualenv/lib/python3.6/site-packages/pkg_resources/__init__.py", line 1118, in best_match
        return self.obtain(req, installer)
      File "/Users/user/Documents/virtualenv/lib/python3.6/site-packages/pkg_resources/__init__.py", line 1130, in obtain
        return installer(requirement)
      File "/Users/user/Documents/virtualenv/lib/python3.6/site-packages/setuptools/dist.py", line 439, in fetch_build_egg
        return cmd.easy_install(req)
      File "/Users/user/Documents/virtualenv/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/45/r4yr9bbj29dfbtxqv75_785m0000gn/T/pip-build-02d49zb3/twisted/
(virtualenv) user<strong i="30">@host</strong>:~/Documents/virtualenv$ 

support

Comentários muito úteis

Tente instalar a nova versão do pip diretamente usando get-pip.py (consulte https://pip.pypa.io/en/stable/installing/)

$ curl 'https://bootstrap.pypa.io/get-pip.py' > get-pip.py
$ sudo python get-pip.py

(formatado por @pradyunsg)

Todos 23 comentários

Eu tive esse problema também.

O problema parece resultar do módulo ssl não estar habilitado ao compilar o Python 3.6.0.

Eu contornei isso descomentando as linhas 209-212 em Python-3.6.0/Modules/Setup

SSL=/usr/local/ssl
_ssl _ssl.c \
        -DUSE_SSL -I$(SSL)/include -I$(SSL)/include/openssl \
        -L$(SSL)/lib -lssl -lcrypto

e certifique-se de que libssl-dev esteja instalado (este é o pacote para debian, de qualquer maneira).

Feito isso, faça ./configure , make e make install novamente e deve funcionar.

Eu tenho exatamente o mesmo problema no Python 3.5, OSX mais recente:

$ pip install pip --upgrade
Could not fetch URL https://pypi.python.org/simple/pip/: There was a problem confirming the ssl certificate: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:720) - skipping

Eu consertei usando o parâmetro de host confiável:

$ pip install --trusted-host pypi.python.org pip --upgrade
Requirement already up-to-date: pip in ./venv/lib/python3.5/site-packages

Eu não chamaria --trusted-host correção. Na melhor das hipóteses, é uma solução perigosa. Você está desabilitando a verificação de TLS e abre seu computador para ataques man-in-the-middle. A opção deveria ter sido chamada --bypass-insecure-host ou similar.

O problema aqui é que setuptools está tentando falar com PyPI, não pip, e que 3.6.0 no macOS não tem acesso a um CA Bundle por padrão e setuptools não agrupa um como o pip faz. Você precisará instalar algo como certifi ou levantar um problema com setuptools.

pip instalação incremental

Você é um herói @CallenChen

Ainda não funciona, por favor me ajude...

C:\Windows\system32>pip install incremental
Coletando incremental
Não foi possível buscar o URL https://pypi.python.org/simple/incremental/ : Ocorreu um problema ao confirmar o certificado SSL: [SSL: CERTIFICATE_VERIFY_FAILED] falha na verificação do certificado (_ssl.c:748) - ignorando
Não foi possível encontrar uma versão que satisfaça o requisito incremental (de versões: )
Nenhuma distribuição correspondente encontrada para incremental

no OSX, usando o macport, a instalação do curl-ca-bundle resolve:

sudo port install curl-ca-bundle

atualização de cerveja
preparar desinstalar openssl
brew instalar openssl
echo 'export PATH="/usr/local/opt/openssl/bin:$PATH"' >> ~/.bash_profile

que tal apenas instalar o certifi como mencionado aqui (este link aparece logo após a instalação do Python 3.6)?

pip install certifi

@gitanupam A instalação do certifi funcionou para mim.

nenhuma das soluções funcionou para mim. estou no OSX

Tente instalar a nova versão do pip diretamente usando get-pip.py (consulte https://pip.pypa.io/en/stable/installing/)

$ curl 'https://bootstrap.pypa.io/get-pip.py' > get-pip.py
$ sudo python get-pip.py

(formatado por @pradyunsg)

@sdk21 isso funciona para mim. THX

Não sei por que, talvez porque o Pypi não aceita mais conexões http ... Mas alterar o espelho funciona para mim:

$ cat ~/.config/pip/pip.conf
[global]
proxy = http://my-proxy:8080
index-url = http://mirrors.aliyun.com/pypi/simple/
trusted-host = mirrors.aliyun.com

O PyPI está aceitando conexões HTTP, mas recentemente interrompeu o suporte para TLS v1.0 e v1.1. Consulte https://stackoverflow.com/a/49769015/1526703

Obrigado pelo esclarecimento, @gitanupam

Obrigado @sdk21! Funciona para mim!

@sdk21 Isso funciona para mim. Obrigado!

@sdk21 Isso funciona para mim. Obrigado!

Obrigado @sdk21 resolva...

no mac, eu fiz isso e finalmente funcionou:
https://pip.readthedocs.io/en/stable/installing/

@sdk21 obrigado, funciona para mim 👍

Esta página foi útil?
0 / 5 - 0 avaliações