【问题标题】:How to use OpenSSL in Python 3.7 in FreeBSD?如何在 FreeBSD 的 Python 3.7 中使用 OpenSSL?
【发布时间】:2020-08-25 09:20:09
【问题描述】:

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

当我尝试运行我的代码时,我收到以下错误。经过研究,我认为是由于没有安装openssl-devel。

但是,我被告知 FreeBSD 不像 Linux 那样将库和头文件分成单独的包。 OpenSSL 的标头位于 /usr/local/include/openssl 中,OPENSSL_no_config 定义在 conf.h 中。

我需要怎样做才能让我的代码识别标题位于此位置?

谢谢!

...
  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

【问题讨论】:

    标签: python openssl freebsd


    【解决方案1】:

    这个 pip install 命令最终起作用了(在我原来的帖子中,我在包含目录中包含了 /openssl 并且不需要它):

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

    【讨论】:

    • 在 FreeBSD 上创建一个端口将是一个更干净的解决方案。端口框架会为您设置适当的标志和选项。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-06-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多