anaconda3 ssl 报错 pip is configured with locations that require TLS/SSL

anaconda3 的 pip 及与 ssl 相关的操作都报错

pip 报错 openssl 不存在

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

smtp 报错 ssl 导入失败

File "C:\Users\${user}\.virtualenvs\mysite\lib\site-packages\django\core\mail\backends\smtp.py", line 4, in <module>
    import ssl
  File "F:\anaconda3\lib\ssl.py", line 98, in <module>
    import _ssl             # if we can't import it, let the error propagate
ImportError: DLL load failed: 找不到指定的模块。

我这里虽然用了virtualenv,但是真实的安装目录上pip也是报错的。

搜索了一些方案都不对。

解决

后来发现,在 anaconda3 的根目录下时如 F:\anaconda3 导入 ssl 就没问题。

于是在 C:\Users\${user}\.virtualenvs\mysite\Scripts\activate.bat 虚拟环境的激活文件中添加了 F:\anaconda3 这个路径

# 第39行
set "PATH=%VIRTUAL_ENV%\Scripts;%PATH%"

# 改为
set "PATH=%VIRTUAL_ENV%\Scripts;F:\anaconda3;%PATH%"

重新激活 venv 环境就OK了。

新的错误

换了新的Anaconda3-2021.05-Windows-x86_64.exe后,这个办法也不管用了。linux上是没发现这个问题的。

原因仍然是环境变量的问题,在Lib\ssl.py中添加如下代码:

import os
print(os.environ)

运行conda命令,可以看到相关的环境变量。把PATH相关的加到自己虚拟环境的activate.bat即可正常使用pip

可能有其他更优雅的解决办法,但是尚未发现。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值