一、遇到的問題
安裝 python3.7 碰到此問題,安裝好以后,執(zhí)行 python3 安裝django, 出現(xiàn)錯(cuò)誤 ImportError: No module named _ssl 。 該錯(cuò)誤表現(xiàn)在 pip install 時(shí)會(huì)報(bào) pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.
在網(wǎng)上找了很多資料都不行,最后找到了一個(gè)方法是將 openssl 升級(jí) 到 1.1.x之后的版本是有效的。
二、升級(jí)過程
一、下載 openssl 編譯安裝
openssl 官方下載地址:https://www.openssl.org/source/
wget https://github.com/openssl/openssl/archive/OpenSSL_1_1_1d.tar.gz
解壓
tar -zxvf OpenSSL_1_1_1d.tar.gz
二、編譯安裝
進(jìn)入openssl-OpenSSL_1_1_1d
cd openssl-OpenSSL_1_1_1d
指定安裝路徑并編譯
./config --prefix=/usr/local/openssl // 指定安裝路徑
make && make install
三、替換當(dāng)前系統(tǒng)的舊版本 openssl 「先保存原來的」
mv /usr/bin/openssl /usr/bin/openssl.old
mv /usr/lib64/openssl /usr/lib64/openssl.old
mv /usr/lib64/libssl.so /usr/lib64/libssl.so.old
ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl
ln -s /usr/local/openssl/include/openssl /usr/include/openssl
ln -s /usr/local/openssl/lib/libssl.so /usr/lib64/libssl.so
echo "/usr/local/openssl/lib" >> /etc/ld.so.conf
ldconfig -v // 建立動(dòng)態(tài)鏈接
四、最后查看當(dāng)前系統(tǒng) openssl 版本
openssl version
五、重新編譯Python3.7
進(jìn)入解壓后的Python目錄
cd Python-3.7.1
./configure --prefix=/usr/local/python3 --with-openssl=/usr/local/openssl
make
make install
ln -s /usr/local/python3/bin/python3 /usr/bin/python3
ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3
六、查看是否安裝成功
python3 -V
python 3.7.1********
pip3 -V
pip 10.0.1**********
七、驗(yàn)證
[root@localhost Python-3.7.1]# python3
Python 3.7.1 (default, Sep 10 2020, 14:20:03)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-23)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import django
>>> django.VERSION
(3, 1, 1, 'final', 0)
>>> exit();

最終完成django安裝