Virtualenv: Não é possível instalar nenhum pacote via `pip` no Windows 10, o módulo ssl em Python não está disponível

Criado em 28 fev. 2018  ·  54Comentários  ·  Fonte: pypa/virtualenv

versão do python: 3.6 (Distribuição Intel para Python para Windows 2018 atualização 1)
versão virtualenv: 15.1.0
versão do windows: windows 10 pro, compilação 17101.rs4_release.180211-1040

Executei apenas 2 comandos, aqui está a saída do Powershell:

PS E:\Python\Virtualenv\Scripts> .\activate
(Virtualenv) PS E:\Python\Virtualenv\Scripts> pip install numpy
pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.
Collecting numpy
  Could not fetch URL https://pypi.python.org/simple/numpy/: There was a problem confirming the ssl certificate: Can't connect to HTTPS URL because the SSL module is not available. - skipping
  Could not find a version that satisfies the requirement numpy (from versions: )
No matching distribution found for numpy

Este diretório Python não é onde o python foi instalado, é apenas um diretório normal.

Eu tentei instalar alguns openssl autônomos, como o daqui , mas nenhum deles funcionou.

Comentários muito úteis

Eu tive o mesmo problema. Eu estava configurando um novo computador com python e jupyter com anaconda, e o problema ocorreu quando tentei instalar um pacote use pip.

Com base nas discussões acima, que este é um problema de ambiente, tentei executar o comando "pip install" no Anaconda Prompt em vez de cmd . E o comando pip foi executado. 😁

Todos 54 comentários

Suponho que o pip usado seja o do seu virtualenv . Seu _system_ pip é capaz de instalar? Caso contrário, isso pode não ser um problema de virtualenv ...

@tobiasherp
O sistema pip está ok, mas o pip no virtualenv não serve.
Não sei onde está o problema, não consigo encontrar uma situação semelhante no Google. :(
Não apenas o numpy , ele não pode instalar nenhum pacote online. Mas se houver um arquivo wheel, ele pode ser instalado com sucesso, portanto, acho que o problema pode estar relacionado ao SSL.

Certo, o PyPI usa https agora, então você precisa de suporte a SSL. Se o seu sistema Python não o tiver, seu virtualenv também não o terá. Com o Python 3, você deve poder importar um módulo ssl :

>>> import ssl

Sua melhor aposta pode ser mudar para um intérprete que tenha o módulo ssl .
O interpretador 3.6.4 que acabei de baixar de https://www.python.org/ parece ter suporte a SSL.

AFAICS, este não é um problema virtualenv ; propondo fechá-la.

Pode não ser um problema venv, mas ainda é um problema. Na minha instância, não consigo instalar em venv ou system pip
Eu tenho o IntelPython3 instalado no Win 10 64 bits e SIM, ele tem openssl instalado e compilado, mas por algum motivo as coisas não funcionam

Eu vi isso: [(https://software.intel.com/en-us/forums/intel-distribution-for-python/topic/737878#comment-1920719)]

Mas não consegui corrigir minha versão desse problema.

Qualquer conselho sobre este assunto seria muito útil

@theCJMan você ainda está enfrentando esse problema?

eu to com esse problema

Em terça-feira, 17 de abril de 2018, 19:44 Sumana Harihareswara, [email protected]
escreveu:

@theCJMan https://github.com/theCJMan você ainda está experimentando isso
problema?


Você está recebendo isso porque foi mencionado.
Responda a este e-mail diretamente, visualize-o no GitHub
https://github.com/pypa/virtualenv/issues/1139#issuecomment-382081077 ,
ou silenciar o thread
https://github.com/notifications/unsubscribe-auth/AkTyyw5zfrJFZleItkAkrR1_kE9R-C8Cks5tpioOgaJpZM4SWUf4
.

Transport Layer Security, ou TLS, é parte de como garantimos que as conexões entre seu computador e o PyPI sejam privadas e seguras. É um protocolo criptográfico que teve várias versões ao longo do tempo.

Você precisa se conectar ao PyPI com uma biblioteca de suporte a TLS, como uma versão recente do OpenSSL. As etapas específicas que você precisa seguir dependerão da versão do seu sistema operacional, da origem da instalação do Python (python.org, do fornecedor do sistema operacional ou de um distribuidor intermediário) e das versões instaladas do Python, setuptools , pipenv e pip . Para obter ajuda, acesse o canal #pypa IRC no Freenode , registre um problema em pypa/packaging-problems/issues ou poste na lista de discussão python-help , incluindo seu sistema operacional e detalhes de instalação e a saída de pip install -vvv atualizar pip .

Eu também experimentei isso em macos, python 2.7.15 - system python funcionou bem, env virtual falhou ao instalar devido a

pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.

meu sistema python importou ssl bem, mas o venv python deu o seguinte erro:

raceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/Cellar/python@2/2.7.15_1/Frameworks/Python.framework/Versions/2.7/lib/python2.7/ssl.py", line 126, in <module>
    from _ssl import HAS_SNI, HAS_ECDH, HAS_NPN, HAS_ALPN, HAS_TLSv1_3
ImportError: cannot import name HAS_TLSv1_3

depois de excluir o diretório env e recriar o env, tudo funcionou bem.

Eu tenho o mesmo problema que @liurui39660 , também usando Intel Python Distribution e python -m venv para criar meu venv. Parece ser um problema com o módulo ssl , não tendo nada a ver com pip :

(venv) C:\Users\ceefour\git\tews\ecn-svc>python
Python 3.6.3 |Anaconda custom (64-bit)| (default, May  3 2018, 23:39:44) [MSC v.1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
Intel(R) Distribution for Python is brought to you by Intel Corporation.
Please check out: https://software.intel.com/en-us/python-distribution
>>> import ssl
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\ProgramData\Anaconda3\lib\ssl.py", line 101, in <module>
    import _ssl             # if we can't import it, let the error propagate
ImportError: DLL load failed: The operating system cannot run %1.
>>>

Observe que o bug só foi acionado ao usar o Intel Python dentro de um venv. Ao usar o env base, funciona:

(base) C:\Users\ceefour>python
Python 3.6.3 |Anaconda custom (64-bit)| (default, May  3 2018, 23:39:44) [MSC v.1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
Intel(R) Distribution for Python is brought to you by Intel Corporation.
Please check out: https://software.intel.com/en-us/python-distribution
>>> import ssl
>>> 

Atualização: Este tópico parece ser uma pista:

Rohit J. (Intel) Qui, 06/07/2017 - 21:40
pip era inutilizável com IDP e Miniconda no Windows. O problema foi causado por uma biblioteca conflitante (libeay32.dll) que foi instalada no caminho do sistema. Em tempo de execução, o carregamento dessa biblioteca ganhou precedência sobre o que enviamos com nossa distribuição. Houve um conflito de versão e a execução falharia com "ImportError: Falha ao carregar DLL: O sistema operacional não pode executar %1.". A remoção dessa biblioteca estranha do caminho do sistema resolveu o problema.

Eu tenho _lotes_ de libeay32.dll dentro de C:\Program Files , incluindo um em C:\ProgramData\Anaconda3\Library\bin

Eu tentei mover C:\ProgramData\Anaconda3\Library\bin para a frente de PATH , mas ainda acontece um erro.

Eu tive o mesmo problema. Eu estava configurando um novo computador com python e jupyter com anaconda, e o problema ocorreu quando tentei instalar um pacote use pip.

Com base nas discussões acima, que este é um problema de ambiente, tentei executar o comando "pip install" no Anaconda Prompt em vez de cmd . E o comando pip foi executado. 😁

Ainda estou lutando para seguir desde ontem, depois de instalar o Python 3.7.1 com o Anaconda3

pip está configurado com locais que requerem TLS/SSL, porém o módulo ssl em Python não está disponível.
Tentando novamente (Repetir(total=4, conectar=Nenhum, ler=Nenhum, redirecionar=Nenhum, status=Nenhum)) após a conexão ser interrompida por 'SSLError("Não é possível conectar ao URL HTTPS porque o módulo SSL não está disponível.") ': /simples/pip/
Tentando novamente (Repetir(total=3, conectar=Nenhum, ler=Nenhum, redirecionar=Nenhum, status=Nenhum)) após a conexão ser interrompida por 'SSLError("Não é possível conectar ao URL HTTPS porque o módulo SSL não está disponível.") ': /simples/pip/
Tentando novamente (Repetir(total=2, conectar=Nenhum, ler=Nenhum, redirecionar=Nenhum, status=Nenhum)) após a conexão ser interrompida por 'SSLError("Não é possível conectar ao URL HTTPS porque o módulo SSL não está disponível.") ': /simples/pip/
Tentando novamente (Retry(total=1, connect=None, read=None, redirect=None, status=None)) após a conexão ser interrompida por 'SSLError("Não é possível conectar ao URL HTTPS porque o módulo SSL não está disponível.") ': /simples/pip/
Tentando novamente (Repetir(total=0, conectar=Nenhum, ler=Nenhum, redirecionar=Nenhum, status=Nenhum)) após a conexão ser interrompida por 'SSLError("Não é possível conectar ao URL HTTPS porque o módulo SSL não está disponível.") ': /simples/pip/
Não foi possível buscar URL https://pypi.org/simple/pip/ : Ocorreu um problema ao confirmar o certificado SSL: HTTPSConnectionPool(host='pypi.org', port=443): Max retries excedido com url: /simple/ pip/ (causado por SSLError("Não é possível conectar ao URL HTTPS porque o módulo SSL não está disponível.")) - ignorando
Requisito já atualizado: pip em d:\anaconda3\lib\site-packages (18.1)
pip está configurado com locais que requerem TLS/SSL, porém o módulo ssl em Python não está disponível.
Não foi possível buscar URL https://pypi.org/simple/pip/ : Ocorreu um problema ao confirmar o certificado SSL: HTTPSConnectionPool(host='pypi.org', port=443): Max retries excedido com url: /simple/ pip/ (causado por SSLError("Não é possível conectar ao URL HTTPS porque o módulo SSL não está disponível.")) - ignorando

Eu tive o mesmo problema. Usando a sugestão willliu1995 resolveu o problema. A execução do pip no prompt do cmd não funcionou, mas o lançamento do notebook jupyter e a execução do !pip installtrabalhado.

Se o pip install pandas não estiver funcionando no prompt do CMD, execute-o usando o prompt do Anaconda - funciona. Você pode encontrar o prompt do Anaconda usando isto:

Vá com o mouse até o ícone do Windows (canto inferior esquerdo) e comece a digitar "Anaconda". Deve aparecer algumas entradas correspondentes. Selecione "Prompt Anaconda". Uma nova janela de comando, chamada "Prompt do Anaconda" será aberta. Fonte - https://stackoverflow.com/questions/47914980/how-to-access-anaconda-command-prompt-in-windows-10-64-bit

Se preferir usar o prompt de comando do Windows, você precisará adicionar os seguintes diretórios ao caminho do ambiente do Windows:
%Miniconda3_DIR%;%Miniconda3_DIR%\Library\mingw-w64\bin;%Miniconda3_DIR%\Library\usr\bin;%Miniconda3_DIR%\Library\bin;%Miniconda3_DIR%\Scripts;%Miniconda3_DIR%\bin;
[onde %Miniconda3_DIR% deve ser substituído pelo caminho de instalação do Miniconda (ou Anaconda)]

Por exemplo, tenho meu Miniconda instalado em E:\Portable\Miniconda3 . Então, meu PATH do Windows teve que incluir essas pastas:
E:\Portable\Miniconda3;E:\Portable\Miniconda3\Library\mingw-w64\bin;E:\Portable\Miniconda3\Library\usr\bin;E:\Portable\Miniconda3\Library\bin;E:\Portable\Miniconda3\Scripts;E:\Portable\Miniconda3\bin;

@shriprem Obrigado! Funcionou. Sua solução confirma que este é um problema de caminho do sistema, pois geralmente só é necessário adicionar %Miniconda3_DIR%\Scripts à sua variável PATH para usar pip. Alguma idéia de por que isso mudou?

@EthanBackToLife Eu verifiquei a variável de ambiente PATH no prompt do Anaconda e descobri que o Anaconda estava prefixando todos esses diretórios para sua variável PATH do prompt. Então, acrescentei a parte delta desse caminho à variável PATH do Windows para confirmar que funcionou para o pip.

Ao tentar instalar o Conda em um PC diferente, consigo refinar as alterações de caminho para um muito mais curto: %Miniconda3_DIR%;%Miniconda3_DIR%\Scripts;%Miniconda3_DIR%\Library\bin
[Em retrospectiva, vemos que os outros diretórios que foram adicionados ao caminho do meu post anterior são inexistentes/vazios em uma nova instalação do Conda.]

Com este estreitamento do caminho, podemos olhar para a pasta %Miniconda3_DIR%\Library\bin . Aqui, encontramos arquivos como: libcrypto-1_1-x64.dll, libcrypto-1_1-x64.pdb, libssl-1_1-x64.dll, openssl.exe, libssl-1_1-x64.pdb, openssl.pdb que eu acho que são críticos para resolver os problemas de SSL/TLS com as instalações do pacote pip (e conda).

versão do python: 3.6 (Intel Distribution for Python para Windows 2018 atualização 1)
versão virtualenv: 15.1.0
versão do windows: windows 10 pro, compilação 17101.rs4_release.180211-1040

Executei apenas 2 comandos, aqui está a saída do Powershell:

PS E:\Python\Virtualenv\Scripts> .\activate
(Virtualenv) PS E:\Python\Virtualenv\Scripts> pip install numpy
pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.
Collecting numpy
  Could not fetch URL https://pypi.python.org/simple/numpy/: There was a problem confirming the ssl certificate: Can't connect to HTTPS URL because the SSL module is not available. - skipping
  Could not find a version that satisfies the requirement numpy (from versions: )
No matching distribution found for numpy

Este diretório Python não é onde o python foi instalado, é apenas um diretório normal.

Eu tentei instalar alguns openssl autônomos, como o daqui , mas nenhum deles funcionou.

Eu encontrei a mesma pergunta que você, e tentei usar o comando .\activate , então resolvi a questão perfeitamente, não pude mais agradecer.

@EthanBackToLife Eu verifiquei a variável de ambiente PATH no prompt do Anaconda e descobri que o Anaconda estava prefixando todos esses diretórios para sua variável PATH do prompt. Então, acrescentei a parte delta desse caminho à variável PATH do Windows para confirmar que funcionou para o pip.

Ao tentar instalar o Conda em um PC diferente, consigo refinar as alterações de caminho para um muito mais curto: %Miniconda3_DIR%;%Miniconda3_DIR%\Scripts;%Miniconda3_DIR%\Library\bin
[Em retrospectiva, vemos que os outros diretórios que foram adicionados ao caminho do meu post anterior são inexistentes/vazios em uma nova instalação do Conda.]

Com este estreitamento do caminho, podemos olhar para a pasta %Miniconda3_DIR%\Library\bin . Aqui, encontramos arquivos como: libcrypto-1_1-x64.dll, libcrypto-1_1-x64.pdb, libssl-1_1-x64.dll, openssl.exe, libssl-1_1-x64.pdb, openssl.pdb que eu acho que são críticos para resolver os problemas de SSL/TLS com as instalações do pacote pip (e conda).

Ótima explicação! Obrigada.

Ainda tenho esse problema depois de fazer o que o @shriprem comentou. Python versão 3.7.1 e pip versão 18.1, se isso ajudar.

"Eu posso resolver esse problema adicionando o caminho do diretório intel-python que tem libeay32.dll (no meu caso ..\IntelPython3\pkgs\openssl-1.0.2l-vc14_intel_0\Library\bin) no ambiente do sistema como a posição mais alta. "

referência: https://software.intel.com/en-us/forums/intel-distribution-for-python/topic/737878

Descobri que estar no diretório "Scripts" é necessário para usar pip

Para Windows 10 Se a instalação do pip não estiver funcionando no prompt do CMD, execute-o usando o prompt do Anaconda - funciona.

Se você quiser usar pip no CMD normal, não apenas no prompt do Anaconda.
você precisa adicionar 3 caminhos de ambiente.
como estes:
D:\Anaconda3;
D:\Anaconda3\Scripts;
D:\Anaconda3\Biblioteca\bin

a maioria das pessoas apenas adiciona D:\Anaconda3\Scripts;

Especifique o caminho C:\Anaconda3\Library\bin nas variáveis ​​de usuário do ambiente.
Ou
Basta verificar se você tem o openssl instalado no python base
Se não basta instalar usando o seguinte comando
pip instalar pyopenssl

Acredito que os caminhos foram adicionados corretamente, mas o pip ainda não está funcionando, seja no CMD ou no prompt do Anaconda.

você tentou no diretório "Scripts"?

você tentou no diretório "Scripts"?

Se você quer dizer cd xxx/Scripts e depois pip install, tentei agora e não está funcionando.

@SnarkyPapi , você diz "Acredito que os caminhos foram adicionados corretamente". Para confirmar este fato, execute os 4 comandos listados em negrito abaixo.

  1. Comando: > where python
    A saída deve ser algo como: _C:\Miniconda3-x64\python.exe_

  2. Comando: > where pip
    A saída deve ser algo como: _C:\Miniconda3-x64\Scriptspip.exe_

  3. Comando: > where openssl
    A saída deve ser algo como:
    [Observe que é possível que openssl.exe esteja instalado em vários locais do caminho do ambiente. No meu caso, openssl também foi instalado como parte da instalação do Perl]
    _C:\Perl\c\bin\openssl.exe
    C:\Miniconda3-x64\Biblioteca\bin\openssl.exe_

  4. Comando: > where libssl-1_1-x64.dll
    A saída deve ser algo como: _C:\Miniconda3-x64\Library\bin\libssl-1_1-x64.dll_

Para qualquer um deles, se você obtiver uma saída que diga "INFO: Não foi possível encontrar arquivos para o(s) padrão(ões) fornecido(s), um dos componentes de caminho necessários para o pip está ausente para o seu ambiente.

Oi, os 4 comandos funcionaram bem, e para o 4º ele mostra 2 linhas:
C:\Windows\System32\libssl-1_1-x64.dll
C:\Anaconda\Biblioteca\bin\libssl-1_1-x64.dll

parece que você pode querer colocar "C:\Anaconda\Library\bin" no início do seu $PATH

parece que você pode querer colocar "C:\Anaconda\Library\bin" no início do seu $PATH
Acabei de testar e o problema continua.

você pode echo %PATH%

você pode ter aberto um novo terminal para o PATH mudar

Solução alternativa: acabei de conseguir fazê-lo funcionar criando um arquivo pip.ini em C:\Users\my_user_namepip, escrevendo:

[global]
index-url= http://pypi.douban.com/simple/
[instalar]
host confiável=pypi.douban.com

Ele resolve o problema no momento, porém a velocidade de download usando este espelho não é muito rápida (em torno de 800kb/s). Existe uma maneira de fazê-lo funcionar como de costume?

você pode echo %PATH%

você pode ter aberto um novo terminal para o PATH mudar

C:\Anaconda\Library\bin;D:\Software\NVIDIA GPU Computing Toolkit\CUDA\v10.0\bin;D:\Software\NVIDIA GPU Computing Toolkit\CUDA\v10.0\libnvvp;C:\Program Files (x86)\Common Files\Oracle\Java\javapath;C:\Program Files (x86)\Razer Chroma SDK\bin;D:\Software\Razer Chroma SDK\bin;C:\windows\system32;C:\windows ;C:\windows\System32\Wbem;C:\windows\System32\WindowsPowerShell\v1.0\;C:\windows\System32\OpenSSH\;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common; D:\Software\PuTTY\;C:\windows\system32\config\systemprofile\AppData\Local\Microsoft\WindowsApps;D:\Software\dotnet\;D:\Software\MySQL\MySQL Utilities 1.6\;C:\ Arquivos de programas\Intel\WiFi\bin\;C:\Arquivos de programas\Arquivos comuns\Intel\WirelessCommon\;D:\Software\Git\cmd;C:\Users\Cyrilpippip.ini;C:\Anaconda;C:\ Anaconda\Library\mingw-w64\bin;C:\Anaconda\Library\usr\bin;C:\Anaconda\Scripts;C:\Anaconda\bin;C:\Anaconda\Library\bin;C:\Anaconda;C :\Anaconda\Library\mingw-w64\bin;C:\Anaconda\Library\usr\bin;C:\Anaconda\Scripts;C:\Anaconda\bin;D:\Software\D ocker Toolbox;C:\Users\Cyrilpippip.ini;

As bibliotecas SSL estão na pasta C:\anaconda\Library\bin . Você precisa ter esse caminho definido no momento de tentar instalar suas bibliotecas . Isso porque, ao ativar um ambiente virtual, o PATH é alterado.

Portanto,

  • Se você não usa ambientes virtuais, defina manualmente o PATH para:
set PATH=C:\anaconda;C:\anaconda\Scripts;C:\anaconda\Library\bin
pip  install any_library
or
pip install -r requirements.txt

  • Se você usa ambientes virtuais, defina manualmente o PATH para:
set PATH=C:\venvs\ve1\;C:\venvs\ve1\Scripts;C:\anaconda\Library\bin
pip  install any_library
or
pip install -r requirements.txt

Observe que C:\anaconda\Library\bin é consistente em ambos os casos, independentemente de você estar trabalhando em uma vm ou não.

@datatravelgit Oi, não estou usando ambientes virtuais e ainda há esse problema após definir o caminho manualmente.

Obrigado pelos comentários úteis acima! Adicionar o seguinte à variável de caminho funcionou para mim no Windows 10:
C:\Usuários...\Anaconda3
C:\Users...\Anaconda3\Scripts
C:\Usuários...\Anaconda3\Biblioteca\bin

Eu tenho o mesmo problema que @liurui39660 , também usando Intel Python Distribution _and_ python -m venv para criar meu venv. Parece ser um problema com o módulo ssl , não tendo nada a ver com pip :

(venv) C:\Users\ceefour\git\tews\ecn-svc>python
Python 3.6.3 |Anaconda custom (64-bit)| (default, May  3 2018, 23:39:44) [MSC v.1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
Intel(R) Distribution for Python is brought to you by Intel Corporation.
Please check out: https://software.intel.com/en-us/python-distribution
>>> import ssl
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\ProgramData\Anaconda3\lib\ssl.py", line 101, in <module>
    import _ssl             # if we can't import it, let the error propagate
ImportError: DLL load failed: The operating system cannot run %1.
>>>

Observe que o bug só foi acionado ao usar o Intel Python dentro de um venv. Ao usar o env base, funciona:

(base) C:\Users\ceefour>python
Python 3.6.3 |Anaconda custom (64-bit)| (default, May  3 2018, 23:39:44) [MSC v.1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
Intel(R) Distribution for Python is brought to you by Intel Corporation.
Please check out: https://software.intel.com/en-us/python-distribution
>>> import ssl
>>> 

Atualização: Este tópico parece ser uma pista:

Rohit J. (Intel) Qui, 06/07/2017 - 21:40
pip era inutilizável com IDP e Miniconda no Windows. O problema foi causado por uma biblioteca conflitante (libeay32.dll) que foi instalada no caminho do sistema. Em tempo de execução, o carregamento dessa biblioteca ganhou precedência sobre o que enviamos com nossa distribuição. Houve um conflito de versão e a execução falharia com "ImportError: Falha ao carregar DLL: O sistema operacional não pode executar %1.". A remoção dessa biblioteca estranha do caminho do sistema resolveu o problema.

Eu tenho _lotes_ de libeay32.dll dentro de C:\Program Files , incluindo um em C:\ProgramData\Anaconda3\Library\bin

Eu tentei mover C:\ProgramData\Anaconda3\Library\bin para a frente de PATH , mas ainda acontece um erro.
-------------更新:20190327
刚 qq 来 了 个 邮件, 点 进来 才 发现 是 这个 问题 后来 后来 后来 解决 后来 后来 解决 了 了 解决 了 上 重新 在 电脑 上 重新 安装 了 win64openssl_light-1_1_1b.exe, 然后 Anaconda 卸载 并 重装. 现在 Anaconda 和 python 都 正常 了.

------------- 以下 为 旧 内容 谢谢, 我 昨天 也 遇到 了 相同 的 问题, 然后 我 把 Anaconda 卸载 后 重装 了, 但 并 没有 解决. 刚才 我 从 单独 的 的 的 我 从 的 的 目录 中执行import ssl,anaconda中的报错,另外一个不报错。如图:
GitHub Logo
我把pycharm中的路径修改后,pycharm也可以正常运行了。

Eu tive que substituir o libssl-1_1-x64.dll na minha pasta envs/myenv/Library/bin pela dll env base. Não era o mesmo. Além disso, eu tinha outro libssl-1_1-x64.dll em C:/Windows/System32/ e em certas pastas da Intel em C:/Program Files. Eu removi o material da Intel do caminho e excluí o do system32.

Não tenho certeza quando a dll corrompida foi copiada, mas substituí-la pela de conda/Library/bin/ funcionou bem.

Para verificar ainda mais os erros, você pode ativar seu ambiente e digitar python -c "import ssl" . É uma diferença importante, se o erro for "Módulo não encontrado" (-> dll não pode ser encontrado, pode ser um problema de caminho) ou "Ponto de entrada do procedimento não encontrado" (-> provavelmente, uma dll corrompida/errada foi encontrada ).

Eu tive que substituir o libssl-1_1-x64.dll na minha pasta envs/myenv/Library/bin pela dll env base. Não era o mesmo. Além disso, eu tinha outro libssl-1_1-x64.dll em C:/Windows/System32/ e em certas pastas da Intel em C:/Program Files. Eu removi o material da Intel do caminho e excluí o do system32.

Não tenho certeza quando a dll corrompida foi copiada, mas substituí-la pela de conda/Library/bin/ funcionou bem.

Para verificar ainda mais os erros, você pode ativar seu ambiente e digitar python -c "import ssl" . É uma diferença importante, se o erro for "Módulo não encontrado" (-> dll não pode ser encontrado, pode ser um problema de caminho) ou "Ponto de entrada do procedimento não encontrado" (-> provavelmente, uma dll corrompida/errada foi encontrada ).

Estou enfrentando o mesmo problema - "O procedimento especificado não pôde ser encontrado." - somente em env específico.
No env base "import ssl" funciona bem.

Tentei substituir o libssl-1_1-x64.dll do env pelo libssl-1_1-x64.dll do env base - mas não ajudou.
Poderia haver algum outro arquivo que está causando isso?

Corrigido para mim, obrigado pelos comentários de todos.
O problema não foi corrigido adicionando\Anaconda3\Library\bin para o caminho, ou até mesmo para o topo do caminho. O mesmo vale para \Anaconda3\Scripts e \Anaconda3\Library\mingw-w64\bin.

Tentei substituir o libssl-1_1-x64.dll do env pelo libssl-1_1-x64.dll do env base - mas não ajudou.
Poderia haver algum outro arquivo que está causando isso?

A remoção de libssl-1_1-x64.dll e libcrypto-1_1-x64.dll em C:/Windows/System32/ corrigiu o problema para mim.

Eu te amo amigo!
A remoção de libssl-1_1-x64.dll e libcrypto-1_1-x64.dll em C:/Windows/System32/ corrigiu o problema para mim.

instale Win64OpenSSL_Light-1_1_1b.exe https://slproweb.com/download/Win64OpenSSL_Light-1_1_1b.exe , então pip funciona bem.

tente usar:

pip3 install <package>

este problema pode ser resolvido alterando o caminho através deste pc
ir para propriedades
então vá para configurações avançadas
então variáveis ​​de ambiente
então as variáveis ​​do sistema
então caminho
caminho de clique duplo
verifique o caminho do python instalado
se você tem anaconda
em seguida, exclua os dois caminhos e
depois clique em novo
em seguida, copie o caminho do python 3.7 ou os scripts python til mais recentes, ou seja
(C:\Users\'nome de usuário'\AppData\Local\ProgramsPythonPython37\scripts)
então clique em ok
próximo também clique em novo
em seguida, copie o caminho C:\Users\'user name'\AppData\Local\ProgramsPythonPython37
em seguida, reinicie o cmd como administrador e tente novamente a instalação

Engraçado: tive o mesmo problema no Android, Termux. O Pip não pôde se conectar ao pypi.org devido ao SSL ausente.
O problema é claramente com o módulo SSL. Portanto, verifique inicialmente se você possui algum ssl instalado. Se sim, atualize-o para as versões mais recentes, pois os algoritmos SSL evoluem rapidamente e se tornam incompatíveis.
Tente atualizar a biblioteca existente ou instale um pacote com suporte melhor.

Para usuários do Anaconda/Miniconda no Windows, este é um problema de carregamento da biblioteca. Há informações no FAQ de solução de problemas em https://conda.io/projects/conda/en/latest/user-guide/troubleshooting.html#condahttperror -http-000-connection-failed

Como alguns usuários notaram, outras instalações do openssl na pasta Windows\System32 podem ser excepcionalmente problemáticas. Há informações sobre uma solução alternativa no python do Anaconda (e do conda-forge) nesta seção de solução de problemas relacionada: https://conda.io/projects/conda/en/latest/user-guide/troubleshooting.html#numpy -mkl-library- erro de carregamento

Você pode relatar problemas de anaconda em https://github.com/continuumio/anaconda-issues

Eu tive uma recorrência do problema SSL com as instalações do módulo pip. Antes disso, o pip funcionou bem por vários meses - depois de configurar corretamente o caminho do ambiente para incluir as 3 pastas conda: %Conda_DIR%;%Conda_DIR%\Scripts;%Conda_DIR%\Library\bin .

Depois de algumas horas de discussão, cheguei a essas duas soluções - uma para instalações de módulos via pip e outra para aquelas via conda .

Módulo instala via pip

Basicamente, com base nas mensagens de erro, tive que adicionar os sites pypi.org e files.pythonhosted.org como hosts confiáveis.

Você pode fazer isso uma vez via: pip config set global.trusted_host "pypi.org files.pythonhosted.org"
Essa alteração de configuração é salva no arquivo C:\Users\user_name\Appdata\Roaming\pip\pip.ini (em resumo, %APPDATA%\pip\pip.ini ). Como isso está em uma pasta de usuário não administrador da perspectiva do Windows, deve ser seguro fazê-lo.

[Se você não estiver confortável com a mudança de configuração 'global', você pode repetir isso durante cada instalação de módulo.
Por exemplo: pip install --trusted-host pypi.org --trusted-host files.pythonhosted.org -U matplotlib ]

Módulo instala via conda

Alguns módulos Python, como o mapa base, não são instalados via pip. Eu tive que usar conda em vez disso.
Para substituir o erro SSL com conda, tive que usar: conda config --set ssl_verify false

[Após a instalação do módulo conda, liguei o ssl novamente com: conda config --set ssl_verify true ]

Ao resolver esses problemas hoje, as informações gerais em https://conda.io/projects/conda/en/latest/user-guide/troubleshooting.html#ssl -connection-errors e as informações de sites específicos do erro de tempo de instalação mensagens -- ambos provaram ser úteis.

Olá, quando no prompt do anaconda não consigo usar o pip devido a problemas de TSL/SSL:

(base) C:\Users\joshu>pip install pandahouse
WARNING: pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.

Mas eu sou capaz de instalar tudo o que eu quiser ao usar python nativo:

C:\Users\joshu\AppData\Local\Programs\Python\Python37\Scripts>pip install scrapy
Collecting scrapy
  Downloading http....

O que eu fiz até agora:

  1. Python instalado primeiro
  2. anaconda instalada
  3. Anaconda reinstalada
  4. Removido libcrypto-1_1-x64.dll e libssl-1_1-x64.dll de System32/
  5. Adicionadas minhas bibliotecas Anaconda ao sistema superior e variáveis ​​de usuário do PATH
    C:\Users\joshu\Anaconda3\Library\bin
  6. Ainda não funciona

Locais de prompt do CMD em Python nativo:

C:\Users\joshu\AppData\Local\Programs\Python\Python37\Scripts>where libssl-1_1-x64.dll
C:\Users\joshu\Anaconda3\Library\bin\libssl-1_1-x64.dll

C:\Users\joshu\AppData\Local\Programs\Python\Python37\Scripts>where libcrypto-1_1-x64.dll
C:\Users\joshu\Anaconda3\Library\bin\libcrypto-1_1-x64.dll

Localizações do prompt do Anaconda:

(base) C:\Users\joshu>where libssl-1_1-x64.dll
C:\Users\joshu\Anaconda3\Library\bin\libssl-1_1-x64.dll

(base) C:\Users\joshu>where libcrypto-1_1-x64.dll
C:\Users\joshu\Anaconda3\Library\bin\libcrypto-1_1-x64.dll

Não tenho certeza se isso importa, mas OPENSSL_CONF C:\OpenSSL-Win64\bin\openssl.cfg aparece acima de PATH nas minhas variáveis ​​de sistema.

Alguém poderia ajudar, não tenho certeza de como resolver isso e realmente preferiria usar o Anaconda/Spyder em vez de python nativo

@jmhcodes , confira este link: https://stackoverflow.com/questions/41328451/ssl-module-in-python-is-not-available-when-installing-package-with-pip3

Também no stackoverflow, me deparei com outra discussão que era mais relevante para a recorrência repentina do erro de verificação do certificado SSL que comecei a enfrentar no meu PC de trabalho. O link da discussão é: https://stackoverflow.com/questions/25981703/pip-install-fails-with-connection-error-ssl-certificate-verify-failed-certi

Em algumas dessas respostas, havia estas declarações:

No meu caso, os certificados na rede da minha empresa eram o problema.

e

Recentemente, me deparei com esse problema por causa do filtro de conteúdo da Web da minha empresa que usa sua própria Autoridade de Certificação para poder filtrar o tráfego SSL.

Então, no meu caso, foi o firewall da rede corporativa que quebrou meu pip. Mas adicionar files.pythonhosted.org & ** pypi.org como hosts confiáveis ​​resolveu o problema por enquanto.

Honestamente, eu não tinha visto a segunda discussão do stackoverflow quando resolvi o problema na semana passada e postei minhas etapas de solução aqui. A maioria das respostas no artigo do stackoverflow concorda que o uso --trusted-host resolveu seus problemas de pip também. Além dos dois sites mencionados acima, eles também recomendam adicionar pypi.python.org

@shriprem

@jmhcodes , confira este link: https://stackoverflow.com/questions/41328451/ssl-module-in-python-is-not-available-when-installing-package-with-pip3

Também no stackoverflow, me deparei com outra discussão que era mais relevante para a recorrência repentina do erro de verificação do certificado SSL que comecei a enfrentar no meu PC de trabalho. O link da discussão é: https://stackoverflow.com/questions/25981703/pip-install-fails-with-connection-error-ssl-certificate-verify-failed-certi

Eu também vi essas duas postagens e poderia adicioná-lo como um host confiável global e ir embora, mas não estou confortável o suficiente para fazê-lo.

O que realmente pretendo responder é por que o pip funciona sem problemas de SSL/TSL dentro do pacote python nativo na linha cmd, MAS não funciona no prompt do anaconda, embora openssl/libssl-1_1-x64.dll/libcrypto-1_1-x64 .dll todos apontam para o mesmo local.

@jmhcodes , execute o comando where pip.exe no prompt de comando regular e no prompt do Anaconda. Ambos retornam o mesmo caminho para pip.exe?

Aqui estão algumas das diferenças que o prompt do Anaconda traz para seu ambiente em relação ao prompt de comando normal:

  1. O Anaconda prefixa 7 de seus subdiretórios bem na frente do caminho do ambiente regular. Você pode verificar isso executando o comando echo %path% em ambos os ambientes e diferenciando-os. Esses 7 subdiretórios são:
    %CONDA_DIR%; %CONDA_DIR%\Library\mingw-w64\bin; %CONDA_DIR%\Library\usr\bin; %CONDA_DIR%\Library\bin; %CONDA_DIR%\Scripts; %CONDA_DIR%\bin; %CONDA_DIR%\condabin;

_ Nota : %CONDA_DIR% deve ser substituído pelo caminho de instalação do Anaconda._

  1. O Anaconda também define essas novas variáveis ​​de ambiente:
    CONDA_DEFAULT_ENV, CONDA_EXE, CONDA_PREFIX, CONDA_PROMPT_MODIFIER, CONDA_PYTHON_EXE, CONDA_SHLVL, PYTHONIOENCODING, PROJ_LIB, _CONDA_SET_PROJ_LIB
    Você pode verificar isso executando o comando set de ambos os ambientes e diferenciando-os.

Essas diferenças entre os dois ambientes podem estar causando quaisquer problemas que você esteja tendo. Cabe a você cavar mais.

Mas se o pip.exe estiver apontando para o mesmo binário de ambos os ambientes, você não deve se preocupar muito com qual ambiente está usando para executar o pip. Além disso, eu não estaria muito preocupado em adicionar os sites pip python.org muito conhecidos como hosts confiáveis. Assim foram muitos no stackoverflow. São meus dois centavos.

Por último, você mencionou:

Não tenho certeza se isso importa, mas OPENSSL_CONF C:\OpenSSL-Win64\bin\openssl.cfg aparece acima de PATH nas minhas variáveis ​​de sistema.

Isso porque a variável de sistema OPENSSL_CONF vem antes de PATH ao ser listada em ordem alfabética. Portanto, não deve importar para o problema que você está tendo. Ou interpretei mal o que você disse?

Alerta Anaconda
pip 19.1.1 from C:\ProgramData\Anaconda3\lib\site-packages\pip (python 3.7)

Prompt de comando
C:\Users\joshu\AppData\Local\Programs\Python\Python37\Scripts\pip.exe

Mas eu não consigo nem abrir o spyder/anaconda nav ou qualquer outra coisa relacionada ao pacote anaconda que não seja o prompt do anaconda:

(base) C:\Users\joshu>spyder.exe
Traceback (most recent call last):
  File "C:\ProgramData\Anaconda3\lib\site-packages\spyder\utils\external\github.py", line 51, in <module>
    from urllib2 import build_opener, HTTPSHandler, Request, HTTPError
ModuleNotFoundError: No module named 'urllib2'

Durante o tratamento da exceção acima, ocorreu outra exceção:

Traceback (most recent call last):
  File "C:\ProgramData\Anaconda3\lib\site-packages\spyder\app\mainwindow.py", line 3285, in main
    mainwindow = run_spyder(app, options, args)
  File "C:\ProgramData\Anaconda3\lib\site-packages\spyder\app\mainwindow.py", line 3140, in run_spyder
    main.setup()
  File "C:\ProgramData\Anaconda3\lib\site-packages\spyder\app\mainwindow.py", line 809, in setup
    from spyder.plugins.console import Console
  File "C:\ProgramData\Anaconda3\lib\site-packages\spyder\plugins\console.py", line 37, in <module>
    from spyder.widgets.reporterror import SpyderErrorDialog
  File "C:\ProgramData\Anaconda3\lib\site-packages\spyder\widgets\reporterror.py", line 26, in <module>
    from spyder.widgets.github.backend import GithubBackend
  File "C:\ProgramData\Anaconda3\lib\site-packages\spyder\widgets\github\backend.py", line 33, in <module>
    from spyder.utils.external import github
  File "C:\ProgramData\Anaconda3\lib\site-packages\spyder\utils\external\github.py", line 58, in <module>
    from urllib.request import build_opener, HTTPSHandler, HTTPError, Request
ImportError: cannot import name 'HTTPSHandler' from 'urllib.request' (C:\ProgramData\Anaconda3\lib\urllib\request.py)

Eu trabalho com visual studio Code e tive o mesmo problema porque não estava ativo conda virtual env eu executei isso

imagen

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