Python build在现有位置看不到openssl/ssl. h(CentOS 7)

m528fe3b  于 2023-08-06  发布在  Python
关注(0)|答案(1)|浏览(87)

我试图在CentOS 7 Linux机器上构建Python 3.10.5,其中包含ssl模块。python构建成功,但ssl模块构建失败。
最初我得到一个关于python需要OpenSSL >= 1.1.1的错误,所以我按照here的说明安装了OpenSSL 1.1.1c,并验证了安装成功:

$ which openssl
/usr/local/ssl/bin/openssl

个字符
为了安装Python 3.10.5,我按照步骤here,将3.10.2替换为3.10.5。当我跑了一步:

sudo ./configure --enable-optimizations


我发现它使用的是默认版本的OpenSSL,这不符合要求。然后我试着跑:

sudo ./configure --enable-optimizations --with-openssl="/usr/local/ssl/bin"


但随后运行sudo make altinstall显示ssl_ssl模块再次构建失败。回到config命令的输出,我注意到:

checking for openssl/ssl.h in /usr/local/ssl/bin... no


然后我试着跑:

sudo ./configure --enable-optimizations --with-openssl="/usr/local/ssl/include"


因为我确认了这就是openssl/ssl.h的位置然而,输出仍然表示:

checking for openssl/ssl.h in /usr/local/ssl/include... no


这是令人费解的,因为我确认这是文件的生活!

$ ll /usr/local/ssl/include/openssl/ssl.h
-rw-r--r-- 1 root root 111295 Oct 27 17:12 /usr/local/ssl/include/openssl/ssl.h


我还尝试运行了该命令的不同变体,在--with-openssl参数中使用了略有不同的路径,并包括--with-openssl-rpath=auto--with-openssl-rpath=/usr/local/ssl/lib,但仍然无法找到openssl/ssl.h
我看到另一个stackoverflow的答案指示修改文件~/Python-3.10.5/Modules/Setup以取消注解并编辑行:

OPENSSL=/usr/local/ssl/bin/openssl  # (Here I provided the path to my OPENSSL, which was set to some fake path before)
_ssl _ssl.c \
    -I$(OPENSSL)/include -L$(OPENSSL)/lib \
    -lssl -lcrypto


我这样做了,但仍然得到同样的错误。这个问题是否与ssl.h存在于/usr/local/ssl/include/openssl中而openssl二进制文件存在于/usr/local/ssl/bin中的事实有关?我不知道足够的从这里开始,真的很感激任何帮助!

mqkwyuun

mqkwyuun1#

x1c 0d1x的数据
正如您在configure文件中所看到的,ssldir不应包含include文件夹,因此只需使用**/usr/local/ssl**即可

相关问题