构建OpenSSL以编译Python的可移植版本

构建OpenSSL以编译Python的可移植版本,python,linux,openssl,Python,Linux,Openssl,我正在尝试从源代码构建Python,需要包含SSL模块,以便我的web scraper使用它 我遇到了找不到SSL的问题,所以我从源代码下载并构建了OpenSSL。问题是,我需要将开发库与OpenSSL一起安装,以便Python在运行make时正确运行-lssl参数。我似乎找不到任何关于如何使用开发libs构建OpenSSL的文档,尽管我确信这一定是我所缺少的一些简单的东西 我必须从源头上做到这一点;没有包管理器。我有我的理由 编辑: 我已经更改了一些python配置设置以尝试修复该问题,这就是

我正在尝试从源代码构建Python,需要包含SSL模块,以便我的web scraper使用它

我遇到了找不到SSL的问题,所以我从源代码下载并构建了OpenSSL。问题是,我需要将开发库与OpenSSL一起安装,以便Python在运行
make
时正确运行
-lssl
参数。我似乎找不到任何关于如何使用开发libs构建OpenSSL的文档,尽管我确信这一定是我所缺少的一些简单的东西

我必须从源头上做到这一点;没有包管理器。我有我的理由

编辑: 我已经更改了一些python配置设置以尝试修复该问题,这就是我现在遇到的编译错误:


gcc-pthread-Xlinker-export-dynamic-o python\
Modules/python.o\
libpython2.7.a-lpthread-ldl-lutil-L/home/[username]/openssl src-lssl-lcrypto-lm
libpython2.7.a(posixmodule.o)(.text+0x4016):在函数
posix_tmpnam':
/Modules/posixmodule.c:7346:警告:使用
tmpnam\u r'是危险的,最好使用
mkstemp'
libpython2.7.a(posixmodule.o)(.text+0x3f76):在函数中
posix_tempnam': ./Modules/posixmodule.c:7301:警告:使用
tempnam'是危险的,最好使用
mkstemp'
./python:加载共享库时出错:libssl.so.1.0.0:无法打开共享对象文件:没有这样的文件或目录
make:[sharedmods]错误127


正在抛出“无此类文件或目录”以查找确实存在于
/home/[username]/openssl src
目录中的文件。

默认的openssl构建应使用
确保安装
安装相应的头文件和库,只需确保为配置脚本提供正确的前缀(例如,
/configure--prefix=/usr

如果失败,请发布gcc显示的确切错误


顺便说一下,请考虑使用一个自动化工具,比如Python的构建。我认为标准的食谱要关注SSL的支持(甚至可能下载和编译OpenSSL)。,尽管我对此不确定。

默认的OpenSSL构建应该使用
确保安装
,安装适当的头文件和库,只需确保为配置脚本提供正确的前缀(例如,
/configure--prefix=/usr

如果失败,请发布gcc显示的确切错误


顺便说一下,请考虑使用一个自动化工具,比如Python的构建。我认为标准的食谱要关注SSL的支持(甚至可能下载和编译OpenSSL)。,虽然我对此不确定。

这个答案并不能完全回答我的问题,但我确实找到了我需要知道的内容,所以我将把它发布在这里。我不得不将它要查找的SSL文件的位置更改为
/usr
,而不是
/usr/local
。默认情况下,RedHat在
/usr/l中拥有所有共享库ib
而不是它默认查找的
/usr/local/lib

这个答案并不能完全回答我的问题,但我确实找到了我需要知道的内容,所以我将其发布在这里。我必须将它查找的SSL文件的位置更改为
/usr
,而不是
/usr/local
。RedHat by默认情况下,所有共享库都位于
/usr/lib
中,而不是
/usr/local/lib
,这是默认情况下的查找位置。

位于Bourne shell(/bin/sh或/bin/bash)中:

在C-shell(/bin/csh或/bin/tcsh)中:

在Bourne shell(/bin/sh或/bin/bash)中:

在C-shell(/bin/csh或/bin/tcsh)中:


也许我误解了
make
make-install
的用法。我认为
make-install
所做的只是在不同的位置构建它(例如您指定的/usr/bin)。在任何情况下,我都会在原始邮件中发布我现在遇到的编译错误。由于我工作场所的网络限制,我无法单击您发布的链接:(看起来您没有在系统位置安装库的权限,因此在配置Python时必须提供OpenSSL的路径。我记不太清楚了,但我认为应该将环境变量CFLAGS设置为“-L/home/user/OpenSSL src/lib”(或库的任何目录)在运行Python的
configure
脚本之前可能会有所帮助。也许我误解了
make
makeinstall
的用法。我认为
makeinstall
所做的只是在不同的位置(例如您指定的/usr/bin)构建它。在任何情况下,我都会在原始邮件中发布我现在遇到的编译错误。由于我工作场所的网络限制,我无法单击您发布的链接:(看起来您没有在系统位置安装库的权限,因此在配置Python时必须提供OpenSSL的路径。我记不太清楚了,但我认为应该将环境变量CFLAGS设置为“-L/home/user/OpenSSL src/lib”(或库的任何目录)在运行Python的
configure
脚本之前,请将“/usr/local/lib”更改为您的openssl libchange路径“/usr/local/lib”更改为您的openssl lib路径
$ LD_LIBRARY_PATH=/usr/local/lib
$ export LD_LIBRARY_PATH
$ make
% setenv LD_LIBRARY_PATH /usr/local/lib
% make