我需要在Ubuntu 16.04中使用openssl-1.1.1来试用python 3.7。python和openssl版本都是预发布版本。按照a previous post中如何将openssl统计链接到python的说明,我下载了opnssl-1.1.1的源代码。然后导航到openssl的源代码并执行:
./config
sudo make
sudo make install
然后,编辑Modules/Setup.dist
以取消注解以下行:
SSL=/usr/local/ssl
_ssl _ssl.c \
-DUSE_SSL -I$(SSL)/include -I$(SSL)/include/openssl \
-L$(SSL)/lib -lssl -lcrypto
然后下载python 3.7源代码,浏览源代码并执行:
./configure
make
make install
在我执行make install
之后,我在终端输出的末尾得到了这个错误:
./python: error while loading shared libraries: libssl.so.1.1: cannot open shared object file: No such file or directory
generate-posix-vars failed
Makefile:596: recipe for target 'pybuilddir.txt' failed
make: *** [pybuilddir.txt] Error 1
我不知道问题出在哪里,我需要做什么。
3条答案
按热度按时间kb5ga3dv1#
这与 Python 或 OpenSSL 版本无关(应该无关)。
当加载 .so 时,加载器必须(递归地)找到 .so 需要(依赖)的所有 .so 文件,否则它将无法加载它。
您需要做的是指示加载程序(查看[Man7]: LD.SO(8)了解更多详细信息)在哪里查找“您的”*OpenSSL**lib *(位于 /usr/local/ssl/lib 下)。一种方法是在 *${LD_LIBRARY_PATH}*env var 中添加它们的路径(在构建 Python 之前):
你可能还想看看[Python.docs]:配置Python -库选项(--使用openssl ,--使用openssl-rpath)。
查看[SO]: How to enable FIPS mode for libcrypto and libssl packaged with Python? (@CristiFati's answer),了解与您的问题(远程)相关的更广泛问题的详细信息。
0s0u357o2#
我做了什么来解决这个问题:
使用导出设置
LD_LIBRARY_PATH
是不够的gstyhher3#
使用Python-3.6.5和openssl-1.1.0h时,我遇到了同样的问题,我有uncomment _socket socketmodule. c。