使用 openssl 支持构建 python

使用 openssl 支持构建 python

我有以下目录结构:

nchambers@nchambers-305E4A-305E5A-305E7A:~/mini-bin$ la
2to3               cpp-5.3.0            gcov-5.3.0           grmid-5.3.0         objcopy-2.25.1    python3.5-config      .sources
2to3-3.5           elfedit-2.25.1       gcov-tool-5.3.0      grmiregistry-5.3.0  objdump-2.25.1    python3.5m            strings-2.25.1
addr2line-2.25.1   g++-5.3.0            gfortran-5.3.0       gserialver-5.3.0    pydoc             python3.5m-config     strip-2.25.1
aot-compile-5.3.0  gappletviewer-5.3.0  gij-5.3.0            gtnameserv-5.3.0    pydoc3            python3-config        x86_64-unknown-linux-gnu-c++-5.3.0
ar-2.25.1          gc-analyze-5.3.0     gjar-5.3.0           idle                pydoc3.5          python-config         x86_64-unknown-linux-gnu-g++-5.3.0
.archives          gcc-5.3.0            gjarsigner-5.3.0     idle3               python            pyvenv                x86_64-unknown-linux-gnu-gcc-5.3.0
as-2.25.1          gcc-ar-5.3.0         gjavah-5.3.0         idle3.5             python2           pyvenv-3.5            x86_64-unknown-linux-gnu-gcc-ar-5.3.0
bash               gcc-nm-5.3.0         gkeytool-5.3.0       jcf-dump-5.3.0      python2.7         ranlib-2.25.1         x86_64-unknown-linux-gnu-gcc-nm-5.3.0
.binaries          gcc-ranlib-5.3.0     gnative2ascii-5.3.0  jv-convert-5.3.0    python2.7-config  readelf-2.25.1        x86_64-unknown-linux-gnu-gcc-ranlib-5.3.0
.build             gcj-5.3.0            gorbd-5.3.0          ld-2.25.1           python2-config    rebuild-gcj-db-5.3.0  x86_64-unknown-linux-gnu-gcj-5.3.0
c++-5.3.0          gcj-dbtool-5.3.0     gprof-2.25.1         ld.bfd-2.25.1       python3           size-2.25.1           x86_64-unknown-linux-gnu-gfortran-5.3.0
c++filt-2.25.1     gcjh-5.3.0           grmic-5.3.0          nm-2.25.1           python3.5         smtpd.py
nchambers@nchambers-305E4A-305E5A-305E7A:~/mini-bin$ la .sources/
bash-4.4-beta  binutils-2.25.1  boost_1_60_0  gcc-5.3.0  Python-2.7.11  Python-3.5.1
nchambers@nchambers-305E4A-305E5A-305E7A:~/mini-bin$ la .build/
bash-4.4-beta  binutils-2.25.1  boost_1_60_0  gcc-5.3.0  Python-2.7.11  Python-3.5.1
nchambers@nchambers-305E4A-305E5A-305E7A:~/mini-bin$ la .binaries/
bash-4.4-beta  binutils-2.25.1  boost_1_60_0  gcc-5.3.0  Python-2.7.11  Python-3.5.1
nchambers@nchambers-305E4A-305E5A-305E7A:~/mini-bin$ 

一般来说,焦油球进入.archives,解压的源进入.sources,构建发生在.build,最终的二进制文件存储在.binaries。然后我将二进制文件符号链接.binaries~/mini-bin我的 $PATH 上。我知道这是一个奇怪的工作流程,但它对我有用。无论如何,我希望从源代码重建 python-2.7.11 (和 3.4.0,但从 2.7.11 开始)。它在我的系统上构建得很好,但我需要它在 ncurses、readline、ssl 等支持下构建。我必须从源代码编译这些库吗?如果是这样,我会将库放在哪里?我如何告诉 python 用它们构建。谢谢你,有一个美好的一天!

答案1

我一直在尝试在 Ubuntu 20.10 上构建 3.9.1

按照此处的依赖提示进行操作:

https://devguide.python.org/setup/#install-dependencies

具体来说,我从存储库安装了 3.9.0,启用了源存储库,然后:

sudo apt-get build-dep python3.9

然后将其用于配置步骤:

LDFLAGS="-L/usr/lib/x86_64-linux-gnu" ./configure --enable-optimizations

意味着我构建 python 时没有 ssl 错误,这是令人鼓舞的。

如果没有 LDFLAGS 前缀,构建会出现 ssl 失败。

然而,

make test

尽管导入了模块,但 ssl 测试仍然显示失败。

答案2

相关内容