作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
在 MacOS 上从源代码构建 python 时,我不小心覆盖了 MacOS 附带的 python,现在它没有 SSL。我尝试通过运行 --with-ssl
选项再次构建
./configure --with-ssl
但是当我随后运行 make
时,它是这样说的
Python build finished, but the necessary bits to build these modules were not found:
_bsddb _ssl dl
imageop linuxaudiodev ossaudiodev
readline spwd sunaudiodev
To find the necessary bits, look in setup.py in detect_modules() for the module's name.
通过查看 setup.py
我并不清楚我应该做什么来找到“必要的位”。如何在 MacOS 上使用 SSL 构建 python?
最佳答案
首先,MacOS 只包含 LibreSSL 2.2.7 库,没有 header ,你真的想使用自制软件安装 OpenSSL:
$ brew install openssl
openssl 公式是一个keg-only 公式,因为 LibreSSL 库正在隐藏 OpenSSL 而 Homebrew 不会干扰它。这意味着您可以在 /usr/local
而不是 /usr/local/opt/openssl
中找到 OpenSSL。但是 Homebrew 包含必要的命令行工具来确定要使用的路径。
然后您需要将这些告诉 configure
。如果您正在构建 Python 3.7 或更新版本,请使用 --with-openssl
开关:
./configure --with-openssl=$(brew --prefix openssl)
如果您正在构建旧版本,请设置 CPPFLAGS
和 LDFLAGS
环境变量:
CPPFLAGS="-I$(brew --prefix openssl)/include" \
LDFLAGS="-L$(brew --prefix openssl)/lib" \
./configure
Python 配置基础架构从那里获取它。
知道 现在很古老 Python 版本(2.6 或更早版本,3.0-3.4)只能与 OpenSSL 1.0.x 及更早版本一起使用,不再可以从自制核心安装。
关于python - 如何在 MacOS 上使用 python 构建包含 ssl,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36774171/
我是一名优秀的程序员,十分优秀!