使用 ssl 在 Freebsd 11 上安装 Python 3.7

Deb*_*dez 5 python openssl freebsd

我正在尝试在具有 ssl 支持的 Freebsd 11.1 上安装 Python 3.7。

尝试 #1:由于找不到 libdl.so.1,预构建的二进制文件将无法运行

pkg install python37
...
root@s0001:~ # python3.7
Shared object "libdl.so.1" not found, required by "python3.7"
Run Code Online (Sandbox Code Playgroud)

尝试 #2:我下载了 python 3.7 源代码并尝试使用默认值进行构建,但未找到 ssl 模块

./configure
make
...
Python build finished successfully!
The necessary bits to build these optional modules were not found:
_gdbm                 _sqlite3              _ssl
_tkinter              spwd
To find the necessary bits, look in setup.py in detect_modules() for the module's name.
Run Code Online (Sandbox Code Playgroud)

尝试 #3:我注意到 python tarball 中有 openssl 1.1.1 的源代码,所以我尝试了 --with-openssl,但遇到了编译器错误:

./configure --with-openssl=openssl-1.1.1
make

openssl-1.1.1/include/openssl/bn.h:332:1: error: expected function body after function declarator

DEPRECATEDIN_0_9_8(int
^
openssl-1.1.1/include/openssl/bn.h:403:1: error: expected function body after function declarator
DEPRECATEDIN_0_9_8(int BN_get_params(int which)) /* 0, mul, 1 high, 2 low, 3
^
In file included from /root/Python-3.7.0/Modules/_hashopenssl.c:23:
In file included from openssl-1.1.1/include/openssl/evp.h:28:
In file included from openssl-1.1.1/include/openssl/objects.h:15:
Run Code Online (Sandbox Code Playgroud)

似乎安装带有 ssl 支持的 Python(我认为使用 tarball 中的 openssl)应该很简单。这样做的正确方法是什么?

Deb*_*dez 3

我已经成功了。

我需要跑

pkg install openssl
Run Code Online (Sandbox Code Playgroud)

然后我能够使用默认值构建和安装(即遵循尝试#2)