首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >centos6.2升级python2.7 _hashlib和_ssl构建失败,并生成[模块/_ssl.o]错误1

centos6.2升级python2.7 _hashlib和_ssl构建失败,并生成[模块/_ssl.o]错误1
EN

Stack Overflow用户
提问于 2016-10-24 21:36:38
回答 1查看 1.7K关注 0票数 2

我想把默认的python2.6.6从源码升级到python2.7,我安装了:

代码语言:javascript
复制
yum groupinstall "Development tools"
yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel

但是_hashlib和_ssl构建失败。

我的openssl已安装:

代码语言:javascript
复制
whereis openssl
openssl: /usr/bin/openssl /usr/lib/openssl /usr/lib64/openssl /usr/local/bin/openssl /usr/include/openssl /usr/share/man/man1/openssl.1ssl.gz

我取消了关于ssl配置的Module/Setup注释,如下所示:

代码语言:javascript
复制
# Socket module helper for socket(2)
_socket socketmodule.c timemodule.c

# Socket module helper for SSL support; you must comment out the other
# socket line above, and possibly edit the SSL variable:
SSL=/usr/local/ssl
_ssl _ssl.c \
        -DUSE_SSL -I$(SSL)/include -I$(SSL)/include/openssl \
        -L$(SSL)/lib -lssl -lcrypto

然后

代码语言:javascript
复制
./configure --prefix=/usr/local/python27/ --enable-shared
make

它有错误:

代码语言:javascript
复制
gcc -pthread -fno-strict-aliasing -g -O2 -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes  -I. -IInclude -I./Include   -DPy_BUILD_CORE  -DUSE_SSL -I/usr/local/ssl/include -I/usr/local/ssl/include/openssl -c ./Modules/_ssl.c -o Modules/_ssl.o
./Modules/_ssl.c: In function ‘newPySSLObject’:
./Modules/_ssl.c:307: warning: ‘TLSv1_method’ is deprecated (declared at /usr/local/include/openssl/ssl.h:1596)
./Modules/_ssl.c:309: warning: implicit declaration of function ‘SSLv3_method’
./Modules/_ssl.c:309: warning: passing argument 1 of ‘SSL_CTX_new’ makes pointer from integer without a cast
/usr/local/include/openssl/ssl.h:1302: note: expected ‘const struct SSL_METHOD *’ but argument is of type ‘int’
./Modules/_ssl.c:312: warning: implicit declaration of function ‘SSLv2_method’
./Modules/_ssl.c:312: warning: passing argument 1 of ‘SSL_CTX_new’ makes pointer from integer without a cast
/usr/local/include/openssl/ssl.h:1302: note: expected ‘const struct SSL_METHOD *’ but argument is of type ‘int’
./Modules/_ssl.c: In function ‘_create_tuple_for_X509_NAME’:
./Modules/_ssl.c:613: error: dereferencing pointer to incomplete type
./Modules/_ssl.c:630: error: dereferencing pointer to incomplete type
./Modules/_ssl.c: In function ‘_get_peer_alt_names’:
./Modules/_ssl.c:732: error: dereferencing pointer to incomplete type
./Modules/_ssl.c:736: error: dereferencing pointer to incomplete type
./Modules/_ssl.c:741: error: dereferencing pointer to incomplete type
./Modules/_ssl.c:802: warning: ‘ASN1_STRING_data’ is deprecated (declared at /usr/local/include/openssl/asn1.h:553)
./Modules/_ssl.c: In function ‘PySSL_cipher’:
./Modules/_ssl.c:1140: warning: assignment discards qualifiers from pointer target type
./Modules/_ssl.c: In function ‘PySSL_RAND_egd’:
./Modules/_ssl.c:1610: warning: implicit declaration of function ‘RAND_egd’
make: *** [Modules/_ssl.o] Error 1

如果不使用ssl,则make不是此错误,它显示:

代码语言:javascript
复制
Python build finished, but the necessary bits to build these modules were not found:
bsddb185           dl                 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         

我想知道怎么解决这个问题,谢谢。

EN

回答 1

Stack Overflow用户

发布于 2017-02-02 13:54:14

尝试将make命令的输出(包括stderr和stdout )重定向到一个文件,然后遍历该日志。在我的例子中,我使用的是安装在我的系统中的另一个openssl库。在删除该库文件夹之后,make采用了正确的openssl库。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40219892

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档