在使用pip安装pymongo的过程中报错,提示如下:
11 $ pip3 install pymongo 22 pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available. 33 Collecting pymongo 44 Could not fetch URL https://pypi.python.org/simple/pymongo/: There was a problem confirming the ssl certificate: Can't connect to HTTPS URL because the SSL module is not available. - skipping 55 Could not find a version that satisfies the requirement pymongo (from versions: ) 66 No matching distribution found for pymongo
这是由于缺少ssl模块,进入python中验证。
1$ python 2Python 3.7.0a3 (default, Jan 10 2018, 14:36:35) 3[GCC 4.8.5 20150623 (Red Hat 4.8.5-16)] on linux 4Type "help", "copyright", "credits" or "license" for more information. 5>>> import ssl 6Traceback (most recent call last): 7 File "<stdin>", line 1, in <module> 8 File "/usr/local/lib/python3.7/ssl.py", line 100, in <module> 9 import _ssl # if we can't import it, let the error propagate 10ModuleNotFoundError: No module named '_ssl' 11>>>
原因找到:缺少openssl-devel包
1$ rpm -qa | grep openssl 2openssl-1.0.2k-8.el7.x86_64 3xmlsec1-openssl-1.2.20-7.el7_4.x86_64 4openssl-libs-1.0.2k-8.el7.x86_64
解决方法:
1、安装openssl-devel包
$ sudo yum install -y openssl-devel
2、重新编译安装pyhton
修改Setup配置
1$ vi Modules/Setup 2找到 3# Socket module helper for socket(2) 4#_socket socketmodule.c 5 6# Socket module helper for SSL support; you must comment out the other 7# socket line above, and possibly edit the SSL variable: 8#SSL=/usr/local/ssl 9#_ssl _ssl.c \ 10# -DUSE_SSL -I$(SSL)/include -I$(SSL)/include/openssl \ 11# -L$(SSL)/lib -lssl -lcrypto 12改为 13# Socket module helper for socket(2) 14_socket socketmodule.c 15 16# Socket module helper for SSL support; you must comment out the other 17# socket line above, and possibly edit the SSL variable: 18#SSL=/usr/local/ssl 19_ssl _ssl.c \ 20 -DUSE_SSL -I$(SSL)/include -I$(SSL)/include/openssl \ 21 -L$(SSL)/lib -lssl -lcrypto
编译安装
./configure && sudo make && sudo make install
验证:
1$ python 2Python 3.7.0a3 (default, Jan 10 2018, 15:13:22) 3[GCC 4.8.5 20150623 (Red Hat 4.8.5-16)] on linux 4Type "help", "copyright", "credits" or "license" for more information. 5>>> import ssl 6>>>
安装pymongo
1$ sudo /usr/local/bin/pip3 install pymongo 2Collecting pymongo 3 Downloading pymongo-3.6.0.tar.gz (581kB) 4 100% |████████████████████████████████| 583kB 28kB/s 5Installing collected packages: pymongo 6 Running setup.py install for pymongo ... done 7Successfully installed pymongo-3.6.0
安装完成