python hashlib模块安装_Python生成错误:生成模块ssl和hashlib失败

在RHEL4上安装Python 2.7.13作为altinstall时,遇到了ssl和hashlib模块编译失败的问题。尽管已经安装了openssl,但在构建这两个模块时仍然报错,提示缺少libssl.so.1.0.0。尝试了多种解决方案,包括重新编译openssl,但问题依然存在,导致无法使用pip安装依赖,如cffi,因为SSL模块不可用。
摘要由CSDN通过智能技术生成

我正在添加python 2.7.13作为altinstall,方法是将源代码安装到RHEL4框中wget --no-check-certificate https://www.python.org/ftp/python/2.7.13/Python-2.7.13.tar.xz

tar -xvzf Python2.7.13.tar.xz

cd Python2.7.13

./configure --with-ensurepip=install

make

make test

make altinstall

这样我就不会覆盖其他使用所需的默认python。Python2.7.13将成功安装,但缺少我正在进行的项目的几个基本模块。

最初,ssl和haslib模块在本节中会出错。Python build finished, but the necessary bits to build these modules were not found:

_bsddb _sqlite3 _tkinter

bsddb185 dbm dl

gdbm imageop sunaudiodev

To find the necessary bits, look in setup.py in detect_modules() for the module's name.

我安装了openssl,并确保它们位于python查找它们的默认位置,所以现在我有了必要的位,但是它以下面的消息结尾Failed to build these modules:

_hashlib _ssl

下面是解压缩的python包中python2.7 setup.py build的全部输出。我一直在搜索谷歌和任何我能找到的地方,但到目前为止我在任何事情上都没有成功running build

running build_ext

INFO: Can't locate Tcl/Tk libs and/or headers

building '_ssl' extension

gcc -pthread -fno-strict-aliasing -g -O2 -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/usr/local/ssl/include -I. -IInclude -I./Include -I/usr/local/include -I/usr/local/include/python2.7 -c /Python/Modules/_ssl.c -o build/temp.linux-x86_64-2.7/Python/Modules/_ssl.o

/Python/Modules/_ssl.c:57: warning: ignoring #pragma GCC diagnostic

/Python/Modules/_ssl.c: In function ‘_setup_ssl_threads’:

/Python/Modules/_ssl.c:4012: warning: comparison is always false due to limited range of data type

gcc -pthread -shared build/temp.linux-x86_64-2.7/Python/Modules/_ssl.o -L/usr/local/ssl/lib -L/usr/local/lib -lssl -lcrypto -o build/lib.linux-x86_64-2.7/_ssl.so

/usr/bin/ld: /usr/local/ssl/lib/libssl.a(s3_meth.o): relocation R_X86_64_32 against `a local symbol' can not be used when making a shared object; recompile with -fPIC

/usr/local/ssl/lib/libssl.a: could not read symbols: Bad value

collect2: ld returned 1 exit status

building '_hashlib' extension

gcc -pthread -fno-strict-aliasing -g -O2 -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/usr/local/ssl/include -I. -IInclude -I./Include -I/usr/local/include -I/usr/local/include/python2.7 -c /Python/Modules/_hashopenssl.c -o build/temp.linux-x86_64-2.7/Python/Modules/_hashopenssl.o

gcc -pthread -shared build/temp.linux-x86_64-2.7/Python/Modules/_hashopenssl.o -L/usr/local/ssl/lib -L/usr/local/lib -lssl -lcrypto -o build/lib.linux-x86_64-2.7/_hashlib.so

/usr/bin/ld: /usr/local/ssl/lib/libcrypto.a(o_names.o): relocation R_X86_64_32 against `a local symbol' can not be used when making a shared object; recompile with -fPIC

/usr/local/ssl/lib/libcrypto.a: could not read symbols: Bad value

collect2: ld returned 1 exit status

Python build finished, but the necessary bits to build these modules were not found:

_bsddb _sqlite3 _tkinter

bsddb185 dbm dl

gdbm imageop sunaudiodev

To find the necessary bits, look in setup.py in detect_modules() for the module's name.

Failed to build these modules:

_hashlib _ssl

running build_scripts

当我试图使用与python 2.7.13一起安装的pip时,我得到了一个SSL错误,因此我一直在安装来自cx_Oracle和CherryPy等源代码的所有包和其他模块。pip2.7 install cffi

pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.

Collecting cffi

Could not fetch URL https://pypi.python.org/simple/cffi/: There was a problem confirming the ssl certificate: Can't connect to HTTPS URL because the SSL module is not available. - skipping

Could not find a version that satisfies the requirement cffi (from versions: )

No matching distribution found for cffi

我还尝试使用wget --no-check-certificate https://pypi.python.org/packages/83/21/f469c9923235f8c36d5fd5334ed11e2681abad7e0032c5aba964dcaf9bbb/ssl-1.16.tar.gz#md5=fb12d335d56f3c8c7c1fefc1c06c4bfb

tar -xvzf ssl-1.16.tar.gz

cd ssl-1.16

python2.7 setup.py build

但是我得到一个错误,它不应该与python 2.6版一起使用Traceback (most recent call last):

File "setup.py", line 12, in

+ "or earlier.")

ValueError: This extension should not be used with Python 2.6 or later (already built in), and has not been tested with Python 2.3.4 or earlier.

编辑

我四处寻找解决方案,在梳理了setup.py build的输出之后,发现有人有一个类似的问题,似乎与openssl here有关

所以我用./config enable-shared

make

make test

make install

现在我得到了一个关于ssl模块的稍微不同的错误,我是不是越来越搞砸我的环境了?python2.7 setup.py build

running build

running build_ext

INFO: Can't locate Tcl/Tk libs and/or headers

building '_ssl' extension

gcc -pthread -fno-strict-aliasing -g -O2 -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/usr/local/ssl/include -I. -IInclude -I./Include -I/usr/local/include -I/usr/local/include/python2.7 -c /Python/Modules/_ssl.c -o build/temp.linux-x86_64-2.7/Python/Modules/_ssl.o

/Python/Modules/_ssl.c:57: warning: ignoring #pragma GCC diagnostic

/Python/Modules/_ssl.c: In function ‘_setup_ssl_threads’:

/Python/Modules/_ssl.c:4012: warning: comparison is always false due to limited range of data type

gcc -pthread -shared build/temp.linux-x86_64-2.7/Python/Modules/_ssl.o -L/usr/local/ssl/lib -L/usr/local/lib -lssl -lcrypto -o build/lib.linux-x86_64-2.7/_ssl.so

*** WARNING: renaming "_ssl" since importing it failed: libssl.so.1.0.0: cannot open shared object file: No such file or directory

building '_hashlib' extension

gcc -pthread -fno-strict-aliasing -g -O2 -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/usr/local/ssl/include -I. -IInclude -I./Include -I/usr/local/include -I/usr/local/include/python2.7 -c /Python/Modules/_hashopenssl.c -o build/temp.linux-x86_64-2.7/Python/Modules/_hashopenssl.o

gcc -pthread -shared build/temp.linux-x86_64-2.7/Python/Modules/_hashopenssl.o -L/usr/local/ssl/lib -L/usr/local/lib -lssl -lcrypto -o build/lib.linux-x86_64-2.7/_hashlib.so

*** WARNING: renaming "_hashlib" since importing it failed: libssl.so.1.0.0: cannot open shared object file: No such file or directory

Python build finished, but the necessary bits to build these modules were not found:

_bsddb _sqlite3 _tkinter

bsddb185 dbm dl

gdbm imageop sunaudiodev

To find the necessary bits, look in setup.py in detect_modules() for the module's name.

Failed to build these modules:

_hashlib _ssl

running build_scripts

输出中的新警告消息*** WARNING: renaming "_ssl" since importing it failed: libssl.so.1.0.0: cannot open shared object file: No such file or directory表示该文件不存在,但我在/usr/local/ssl/lib/as libssl.so.1.0.0中看到它,可以通过搜索找到它find / -name libssl.so.1.0.0

/usr/local/ssl/lib/libssl.so.1.0.0

/tmp/openssl-1.0.2l/libssl.so.1.0.0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值