我已经在我的本地机器上成功安装了Python 3.4和Python 3.6,但无法安装带有pip3的包。
当我执行pip3 install <package>时,我得到以下SSL相关错误:
pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.
Collecting <package>
Could not fetch URL https://pypi.python.org/simple/<package>/: 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 <package> (from versions: )
No matching distribution found for <package>
如何修复我的Python3。pip install <package>?
我在Debian9上安装python3.8.5时也遇到了同样的问题。我已经做了一个构建,但是当我尝试下载一些模块时,pip3.8出现了以下错误:
pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.
我已经搜索了问题的根源,发现python构建中有一个依赖于系统的部分是由系统独立的部分调用的。如果没有ssl,你只需要打开python终端,检查_ssl是否存在:
>>> help('modules')
.
.
_sre enum pwd wave
_ssl errno py_compile weakref
_stat faulthandler pyclbr webbrowser
.
.
如果不是,您的系统依赖ssl模块部分是缺失的。你也可以通过列出<python_installation_root>/lib/python3.8/lib-dynload的内容来检查:
>ls ./lib/python3.8/lib-dynload | grep ssl
_ssl.cpython-38-x86_64-linux-gnu.so
这个问题是由PengShaw编写的,因为在构建过程中缺少libssl-dev。因此,您必须遵循推荐的python安装流程。首先安装先决条件,然后构建和安装python。在没有devel版本的库的情况下安装导致我的案例中缺少系统依赖部分。在本例中是_ssl。
注意Debian和CentOS的devel库名称不同,因此请检查网上发布的安装提示是否适合您特定的Linux系统类型:
For Debian:
sudo apt install -y libbz2-dev libffi-dev libssl-dev
./configure --enable-optimizations
make
make altinstall
For CentOS:
sudo yum -y install bzip2-devel libffi-devel openssl-devel
./configure --enable-optimizations
make
make altinstall
在配置和evtl之前列出配置选项肯定是个好主意。使用一些额外的选项:
./configure --help
最后但并非最不重要的是,如果您使用——prefix作为非默认安装位置,请记住将<python_installation_root>/lib添加到LD_LIBRARY_PATH。
(Windows上不行!)
这让我抓狂了一个星期,所以我希望这能帮助到一些人
除了重新安装Anaconda和/或Jupyter,我尝试了所有方法。
设置
AWS Linux
手动安装Anaconda 3-5.3.0
Python3(3.7)在anaconda(即。/anaconda3/bin/python)中运行
还有/usr/bin/python和/usr/bin/python3(但这些没有被使用,因为大部分工作都是在Jupyter的终端上完成的)
Fix
在木星的终端:
所以cp / usr / lib64 libssl。10 . anaconda3 / lib / libssl如此。1 . 0 0
所以cp / usr / lib64 libcrypto。10 . anaconda3 / lib / libcrypto如此。1 . 0 0
是什么引发了这一切?
所以,这一切都在工作,直到我尝试做一个conda安装conda锻造
我不知道发生了什么,但conda一定更新了openssl的盒子(我猜),所以在这之后,一切都崩溃了。
基本上,我不知道,conda已经更新了openssl,但不知怎么地删除了旧的库,并用libssl.so.1.1和libcrypt .so.1.1替换了它。
我猜,Python3被编译为查找libssl.so.1.0.0
最后,诊断的关键是:
import ssl;打印(ssl.OPENSSL_VERSION)”
给出提示库“libssl.so.1.0.0”未找到
我做了一个很大的假设,即ssl的yum版本与conda版本相同,因此只要重命名共享对象就可以工作,事实也确实如此。
我的另一个解决方案是重新编译python,重新安装anaconda等等,但最后我很高兴我不需要这样做。
希望这能帮到你们。