我使用的是Python 3.6。当我尝试使用pip3安装“模块”时,我遇到了这个问题:
pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available
我使用的是Python 3.6。当我尝试使用pip3安装“模块”时,我遇到了这个问题:
pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available
当前回答
问题可能来自您安装的openssl包版本。这就是我的情况,我解决了这个问题,只是升级它。我在Mac OS上,使用brew:
brew upgrade openssl
如果你用brew安装了python,这应该会直接修复这个问题,因为python依赖于openssl
其他回答
在ubuntu上从源代码安装python 3.8时遇到了这个问题。下面总结了成功安装默认python 3.7所需的步骤:
sudo apt -y install libssl-dev zlib1g-dev build-essential
wget https://www.python.org/ftp/python/3.8.0/Python-3.8.0.tgz
tar -xf Python-3.8.0.tgz
cd Python-3.8.0/
./configure --enable-optimizations
make
sudo make altinstall
zlib1g-dev和build-essential的安装说明是多余的,因为ubuntu桌面已经有了这些,但对于Amazon的一些EC2实例来说是必要的。Python 3.8.0是目前的最新版本,但应该被最新的可用版本所取代。
这些指令最适合将python 3.7作为python3的默认值,并在虚拟环境中运行python 3.8。
我用的是macOS,我用过brew,但Vaulstein在他的回答中提到的并没有涵盖我的情况。
我运行以下命令,以确保我当前的python没有通过brew安装
brew list | grep python
python
python@2
brew info python
python@3.8: stable 3.8.3 (bottled)
Interpreted, interactive, object-oriented programming language
https://www.python.org/
Not installed
...
所以我从https://www.python.org/下载了最新的3.8.5,安装时我看到了以下信息
证书验证和OpenSSL 此包包含自己的私有OpenSSL 1.1.1副本。的 管理的系统和用户密钥链中的信任证书 Python ssl模块不默认使用Keychain Access应用程序和安全命令行实用程序
在安装3.8.5之后,它修复了这个问题。
对于OpenSUSE,以同样的方式,但对上面列出的包做了一些更改:
zypper install zlib-devel libopenssl-devel ncurses-devel sqlite3-devel readline-devel tk-devel gdbm-devel libpcap-devel xz-devel
然后cd到Python源代码dir和
make
make install
or
make
make altinstall
也许
ln -s /usr/local/lib64/python3.6/lib-dynload/ /usr/local/lib/python3.6/lib-dynload
应该为OpenSUSE用户执行。请参见Python 3.7安装无法在openSUSE Leap 42.3上工作
对于未来试图解决这个问题的Oracle Linux用户,下面是对我有用的方法。 首先安装缺少的库:
yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel
readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel
然后cd到Python3。X库并运行:
make
make install
centos 7:
安装openssl:
sudo yum install openssl-devel
现在进入python目录,在那里我们提取了python tar文件,
运行以下命令
sudo ./configure
sudo make
sudo make install
这将解决centos的问题…