python3.7.1 提示 ModuleNotFoundError: No module named ‘_ssl‘ 模块问题 ;

>>> import ssl
Traceback (most recent call last):
File "", line 1, in 
File "/usr/local/python37/lib/python3.7/ssl.py", line 60, in 
import _ssl # if we can't import it, let the error propagate
ImportError: No module named _ssl

解决

修改 :Python-3.7.1/Modules/Setup.dist 文件,

搜索SSL 看到如下内容把注释取消掉,修改成如下

# 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 /

这里百度给的答案基本都是这样修改,但是改完之后依然报错类似如下

gcc -pthread     -Xlinker -export-dynamic -o python Programs/python.o libpython3.7m.a -lpthread -ldl  -lutil -lrt -L/usr/local/ssl/lib -lssl -lcrypto   -lm
libpython3.7m.a(_ssl.o): In function `PyInit(short, short, long)':
/root/Python-3.7.2/./Modules/_ssl.c:6114: undefined reference to `OpenSSL_version_num'
/root/Python-3.7.2/./Modules/_ssl.c:6124: undefined reference to `OpenSSL_version'
libpython3.7m.a(_ssl.o): In function `sk_ACCESS_DESCRIPTION_num':
/usr/local/include/openssl/x509v3.h:170: undefined reference to `OPENSSL_sk_num'
/usr/local/include/openssl/x509v3.h:170: undefined reference to `OPENSSL_sk_num'
libpython3.7m.a(_ssl.o): In function `sk_ACCESS_DESCRIPTION_value':
/usr/local/include/openssl/x509v3.h:170: undefined reference to `OPENSSL_sk_value'
libpython3.7m.a(_ssl.o): In function `PySSLSession_get_ticket_lifetime_hint':
/root/Python-3.7.2/./Modules/_ssl.c:4964: undefined reference to `SSL_SESSION_get_ticket_lifetime_hint'
libpython3.7m.a(_ssl.o): In function `PySSLSession_get_has_ticket':
/root/Python-3.7.2/./Modules/_ssl.c:4986: undefined reference to `SSL_SESSION_has_ticket'
libpython3.7m.a(_ssl.o): In function `PySSL_get_session_reused':
/root/Python-3.7.2/./Modules/_ssl.c:2823: undefined reference to `SSL_session_reused'
libpython3.7m.a(_ssl.o): In function `PySSL_set_session':
/root/Python-3.7.2/./Modules/_ssl.c:2793: undefined reference to `SSL_is_init_finished'
libpython3.7m.a(_ssl.o): In function `_ssl__SSLSocket_compression_impl':
/root/Python-3.7.2/./Modules/_ssl.c:2061: undefined reference to `COMP_get_type'
/root/Python-3.7.2/./Modules/_ssl.c:2063: undefined reference to `COMP_get_type'
libpython3.7m.a(_ssl.o): In function `_ssl__SSLSocket_selected_alpn_protocol_impl':
/root/Python-3.7.2/./Modules/_ssl.c:2036: undefined reference to `SSL_get0_alpn_selected'
libpython3.7m.a(_ssl.o): In function `_ssl__SSLSocket_version_impl':
/root/Python-3.7.2/./Modules/_ssl.c:1993: undefined reference to `SSL_is_init_finished'
libpython3.7m.a(_ssl.o): In function `sk_SSL_CIPHER_num':
/usr/local/include/openssl/ssl.h:958: undefined reference to `OPENSSL_sk_num'
/usr/local/include/openssl/ssl.h:958: undefined reference to `OPENSSL_sk_num'
libpython3.7m.a(_ssl.o): In function `sk_SSL_CIPHER_value':
/usr/local/include/openssl/ssl.h:958: undefined reference to `OPENSSL_sk_value'
libpython3.7m.a(_ssl.o): In function `_ssl__SSLSocket_get_channel_binding_impl':
/root/Python-3.7.2/./Modules/_ssl.c:2638: undefined reference to `SSL_session_reused'
libpython3.7m.a(_ssl.o): In function `get_verify_flags':
/root/Python-3.7.2/./Modules/_ssl.c:3410: undefined reference to `SSL_CTX_get0_param'
libpython3.7m.a(_ssl.o): In function `set_verify_flags':
/root/Python-3.7.2/./Modules/_ssl.c:3423: undefined reference to `SSL_CTX_get0_param'
libpython3.7m.a(_ssl.o): In function `set_post_handshake_auth':
/root/Python-3.7.2/./Modules/_ssl.c:3637: undefined reference to `SSL_CTX_set_post_handshake_auth'
libpython3.7m.a(_ssl.o): In function `get_options':
/root/Python-3.7.2/./Modules/_ssl.c:3545: undefined reference to `SSL_CTX_get_options'
libpython3.7m.a(_ssl.o): In function `set_options':
/root/Python-3.7.2/./Modules/_ssl.c:3554: undefined reference to `SSL_CTX_get_options'
/root/Python-3.7.2/./Modules/_ssl.c:3567: undefined reference to `SSL_CTX_set_options'
/root/Python-3.7.2/./Modules/_ssl.c:3559: undefined reference to `SSL_CTX_clear_options'
libpython3.7m.a(_ssl.o): In function `set_host_flags':
/root/Python-3.7.2/./Modules/_ssl.c:3586: undefined reference to `SSL_CTX_get0_param'
/root/Python-3.7.2/./Modules/_ssl.c:3588: undefined reference to `X509_VERIFY_PARAM_set_hostflags'
libpython3.7m.a(_ssl.o): In function `cipher_to_dict':
/root/Python-3.7.2/./Modules/_ssl.c:1900: undefined reference to `SSL_CIPHER_is_aead'
/root/Python-3.7.2/./Modules/_ssl.c:1901: undefined reference to `SSL_CIPHER_get_cipher_nid'
/root/Python-3.7.2/./Modules/_ssl.c:1903: undefined reference to `SSL_CIPHER_get_digest_nid'
/root/Python-3.7.2/./Modules/_ssl.c:1905: undefined reference to `SSL_CIPHER_get_kx_nid'
/root/Python-3.7.2/./Modules/_ssl.c:1907: undefined reference to `SSL_CIPHER_get_auth_nid'
libpython3.7m.a(_ssl.o): In function `sk_SSL_CIPHER_num':
/usr/local/include/openssl/ssl.h:958: undefined reference to `OPENSSL_sk_num'
libpython3.7m.a(_ssl.o): In function `sk_SSL_CIPHER_value':
/usr/local/include/openssl/ssl.h:958: undefined reference to `OPENSSL_sk_value'
libpython3.7m.a(_ssl.o): In function `sk_SSL_CIPHER_num':
/usr/local/include/openssl/ssl.h:958: undefined reference to `OPENSSL_sk_num'
libpython3.7m.a(_ssl.o): In function `_ssl__SSLContext_cert_store_stats_impl':
/root/Python-3.7.2/./Modules/_ssl.c:4452: undefined reference to `X509_STORE_get0_objects'
libpython3.7m.a(_ssl.o): In function `sk_X509_OBJECT_num':
/usr/local/include/openssl/x509_vfy.h:58: undefined reference to `OPENSSL_sk_num'
libpython3.7m.a(_ssl.o): In function `sk_X509_OBJECT_value':
/usr/local/include/openssl/x509_vfy.h:58: undefined reference to `OPENSSL_sk_value'
libpython3.7m.a(_ssl.o): In function `_ssl__SSLContext_cert_store_stats_impl':
/root/Python-3.7.2/./Modules/_ssl.c:4455: undefined reference to `X509_OBJECT_get_type'
/root/Python-3.7.2/./Modules/_ssl.c:4458: undefined reference to `X509_OBJECT_get0_X509'
libpython3.7m.a(_ssl.o): In function `_ssl__SSLContext__set_alpn_protocols_impl':
/root/Python-3.7.2/./Modules/_ssl.c:3358: undefined reference to `SSL_CTX_set_alpn_protos'
/root/Python-3.7.2/./Modules/_ssl.c:3360: undefined reference to `SSL_CTX_set_alpn_select_cb'
libpython3.7m.a(_ssl.o): In function `_ssl_configure_hostname':
/root/Python-3.7.2/./Modules/_ssl.c:863: undefined reference to `X509_VERIFY_PARAM_set1_host'
/root/Python-3.7.2/./Modules/_ssl.c:861: undefined reference to `SSL_get0_param'
/root/Python-3.7.2/./Modules/_ssl.c:869: undefined reference to `X509_VERIFY_PARAM_set1_ip'
libpython3.7m.a(_ssl.o): In function `newPySSLSocket':
/root/Python-3.7.2/./Modules/_ssl.c:927: undefined reference to `BIO_up_ref'
/root/Python-3.7.2/./Modules/_ssl.c:928: undefined reference to `BIO_up_ref'
libpython3.7m.a(_ssl.o): In function `_ssl__SSLContext_impl':
/root/Python-3.7.2/./Modules/_ssl.c:3046: undefined reference to `SSL_CTX_set_options'
/root/Python-3.7.2/./Modules/_ssl.c:3077: undefined reference to `OpenSSL_version_num'
/root/Python-3.7.2/./Modules/_ssl.c:3106: undefined reference to `SSL_CTX_get0_param'
/root/Python-3.7.2/./Modules/_ssl.c:3112: undefined reference to `X509_VERIFY_PARAM_set_hostflags'
/root/Python-3.7.2/./Modules/_ssl.c:3116: undefined reference to `SSL_CTX_set_post_handshake_auth'
/root/Python-3.7.2/./Modules/_ssl.c:3046: undefined reference to `SSL_CTX_set_options'
/root/Python-3.7.2/./Modules/_ssl.c:3046: undefined reference to `SSL_CTX_set_options'
/root/Python-3.7.2/./Modules/_ssl.c:2975: undefined reference to `TLS_method'
/root/Python-3.7.2/./Modules/_ssl.c:2977: undefined reference to `TLS_client_method'
/root/Python-3.7.2/./Modules/_ssl.c:2979: undefined reference to `TLS_server_method'
libpython3.7m.a(_ssl.o): In function `_create_tuple_for_X509_NAME':
/root/Python-3.7.2/./Modules/_ssl.c:1174: undefined reference to `X509_NAME_ENTRY_set'
/root/Python-3.7.2/./Modules/_ssl.c:1157: undefined reference to `X509_NAME_ENTRY_set'
libpython3.7m.a(_ssl.o): In function `_decode_certificate':
/root/Python-3.7.2/./Modules/_ssl.c:1594: undefined reference to `X509_get_version'
/root/Python-3.7.2/./Modules/_ssl.c:1629: undefined reference to `X509_getm_notBefore'
/root/Python-3.7.2/./Modules/_ssl.c:1646: undefined reference to `X509_getm_notAfter'
libpython3.7m.a(_ssl.o): In function `sk_GENERAL_NAME_num':
/usr/local/include/openssl/x509v3.h:166: undefined reference to `OPENSSL_sk_num'
libpython3.7m.a(_ssl.o): In function `sk_GENERAL_NAME_value':
/usr/local/include/openssl/x509v3.h:166: undefined reference to `OPENSSL_sk_value'
libpython3.7m.a(_ssl.o): In function `sk_GENERAL_NAME_pop_free':
/usr/local/include/openssl/x509v3.h:166: undefined reference to `OPENSSL_sk_pop_free'
libpython3.7m.a(_ssl.o): In function `sk_DIST_POINT_num':
/usr/local/include/openssl/x509v3.h:205: undefined reference to `OPENSSL_sk_num'
libpython3.7m.a(_ssl.o): In function `sk_DIST_POINT_value':
/usr/local/include/openssl/x509v3.h:205: undefined reference to `OPENSSL_sk_value'
libpython3.7m.a(_ssl.o): In function `sk_GENERAL_NAME_num':
/usr/local/include/openssl/x509v3.h:166: undefined reference to `OPENSSL_sk_num'
libpython3.7m.a(_ssl.o): In function `sk_GENERAL_NAME_value':
/usr/local/include/openssl/x509v3.h:166: undefined reference to `OPENSSL_sk_value'
libpython3.7m.a(_ssl.o): In function `_ssl__SSLSocket_getpeercert_impl':
/root/Python-3.7.2/./Modules/_ssl.c:1809: undefined reference to `SSL_is_init_finished'
libpython3.7m.a(_ssl.o): In function `_ssl__SSLContext_get_ca_certs_impl':
/root/Python-3.7.2/./Modules/_ssl.c:4503: undefined reference to `X509_STORE_get0_objects'
libpython3.7m.a(_ssl.o): In function `sk_X509_OBJECT_num':
/usr/local/include/openssl/x509_vfy.h:58: undefined reference to `OPENSSL_sk_num'
libpython3.7m.a(_ssl.o): In function `sk_X509_OBJECT_value':
/usr/local/include/openssl/x509_vfy.h:58: undefined reference to `OPENSSL_sk_value'
libpython3.7m.a(_ssl.o): In function `_ssl__SSLContext_get_ca_certs_impl':
/root/Python-3.7.2/./Modules/_ssl.c:4509: undefined reference to `X509_OBJECT_get_type'
/root/Python-3.7.2/./Modules/_ssl.c:4514: undefined reference to `X509_OBJECT_get0_X509'
libpython3.7m.a(_ssl.o): In function `_add_ca_certs':
/root/Python-3.7.2/./Modules/_ssl.c:3900: undefined reference to `SSL_CTX_get_default_passwd_cb_userdata'
/root/Python-3.7.2/./Modules/_ssl.c:3900: undefined reference to `SSL_CTX_get_default_passwd_cb'
libpython3.7m.a(_ssl.o): In function `_ssl__SSLSocket_verify_client_post_handshake_impl':
/root/Python-3.7.2/./Modules/_ssl.c:2674: undefined reference to `SSL_verify_client_post_handshake'
libpython3.7m.a(_ssl.o): In function `_ssl__SSLContext_load_cert_chain_impl':
/root/Python-3.7.2/./Modules/_ssl.c:3773: undefined reference to `SSL_CTX_get_default_passwd_cb'
/root/Python-3.7.2/./Modules/_ssl.c:3774: undefined reference to `SSL_CTX_get_default_passwd_cb_userdata'
collect2: ld returned 1 exit status
make: *** [python] Error 1

解决方案

./configure --with-ensurepip=yes CFLAGS="-I$HOME/openssl/include" LDFLAGS="-L$HOME/openssl/lib"

你可能感兴趣的:(Python,ssl,网络协议,网络)