在 Amazon Linux 2 上编译 python 3.10

Die*_*ira 6 python amazon-ec2 amazon-web-services

我正在尝试将 Python 3.10 编译并安装到 Amazon Linux 2 中,但无法通过 https 支持获得它。这是我用来编译它的命令:

sudo yum -y update
sudo yum -y groupinstall "Development Tools"
sudo yum -y install openssl-devel bzip2-devel libffi-devel

wget https://www.python.org/ftp/python/3.10.0/Python-3.10.0.tgz
tar xzf Python-3.10.0.tgz
cd Python-3.10.0

sudo ./configure --enable-optimizations
sudo make altinstall
Run Code Online (Sandbox Code Playgroud)

该二进制文件可以工作,但是当我尝试使用它来到达 https 端点时,我收到以下消息:

Traceback (most recent call last):
  File "<stdin>", line 1113, in <module>
  File "<stdin>", line 1087, in main
  File "/usr/local/lib/python3.10/urllib/request.py", line 216, in urlopen
    return opener.open(url, data, timeout)
  File "/usr/local/lib/python3.10/urllib/request.py", line 519, in open
    response = self._open(req, data)
  File "/usr/local/lib/python3.10/urllib/request.py", line 541, in _open
    return self._call_chain(self.handle_open, 'unknown',
  File "/usr/local/lib/python3.10/urllib/request.py", line 496, in _call_chain
    result = func(*args)
  File "/usr/local/lib/python3.10/urllib/request.py", line 1419, in unknown_open
    raise URLError('unknown url type: %s' % type)
urllib.error.URLError: <urlopen error unknown url type: https>
Run Code Online (Sandbox Code Playgroud)

我不确定我错过了什么:/

shi*_*imo 16

从Python3.10开始,需要OpenSSL 1.1.1或更高版本。

(参考:PEP 644Python3.10 版本

我尝试更改您的一些代码(如下所示)并且有效。

删除openssl-devel

添加openssl11 openssl11-devel