如何在 FreeBSD 的 Python 3.7 中使用 OpenSSL?

How to use OpenSSL in Python 3.7 in FreeBSD?

我的 Python 代码使用了一个使用 OpenSSL 的模块。我 运行正在共享 FreeBSD 服务器上。

当我尝试 运行 我的代码时,出现以下错误。研究了一下,以为是openssl-devel没有安装

但是,我被告知 FreeBSD 不会像 Linux 那样将库和 headers 分成单独的包。 OpenSSL 的 headers 在 /usr/local/include/openssl 中找到,OPENSSL_no_config 在 conf.h 中定义。

我需要做什么才能让我的代码识别出 headers 位于此位置?

谢谢!

...
  File "<virtual environment path>/lib/python3.7/site-packages/cryptography/hazmat/bindings/openssl/binding.py", line 16, in <module>
    from cryptography.hazmat.bindings._openssl import ffi, lib
ImportError: <virtual environment path>/lib/python3.7/site-packages/cryptography/hazmat/bindings/_openssl.abi3.so: Undefined symbol "OPENSSL_no_config"

编辑: 在做了更多挖掘之后,我认为重建我的虚拟环境并指定这些附加参数会在安装库时有所帮助,但我遇到了同样的错误。

pip install --global-option=build_ext  --global-option="-I/usr/local/include/openssl"  -r requirements.txt

这个 pip install 命令最终起作用了(在我原来的 post 中,我已经将 /openssl 包含在 include 目录中,但不需要它):

pip install --global-option=build_ext --global-option="-I/usr/local/include/" -r requirements.txt