一个bug:python version 3.5 doesn't support a 'F' prefix,引发的一场血案
应代码需要升级python版本为3.6以上,于是正常操作:
1.wget获取安装包:
wget http://www.python.org/ftp/python/3.6.2/Python-3.6.2.tgz
2.解压安装包:
tar -xvzf Python-3.6.2.tgz
3.检查安装平台属性,系统是否有编译时所需要额库,以及库的版本是否满足编译需要
./configure
4.编译源码
make
5.成功编译之后,安装
sudo make install
这时候python的版本还是3.5,需要修改/usr/bin/python 的软连接,
1.重命名原来的python软连接,万一升级不成功,python3.5的环境还能还原,不要折了芝麻又丢了谷子
mv /usr/bin/python /usr/bin/python_old
2.创建新链接,我的python3.6.2的默认链接在/usr/local/bin/python3.6,
ln -s /usr/local/bin/python3.6 /usr/bin/python
再次查看python版本为:3.6.2,开不开心,
使用pip命令时,报错了,意不意外:
ModuleNotFoundError: No module named 'pip._internal'
这里安装pip命令,
1. wget https://bootstrap.pypa.io/get-pip.py --no-check-certificate
2. python get-pip.py
突然报错:"Can't connect to HTTPS URL because the SSL module is not available."
几个意思啊,进入python2.7环境:import ssl,没有报错,
进入python3.6.2环境,import ssl报错:ModuleNotFoundError: No module named '_ssl',说明ssl现在只能python2的环境用
别怕,哥最不缺的就是办法,解决办法是重新对python3.6进行编译安装,用以下过程来实现编译安装:
1. cd Python-3.6.2
2. make clean
3. ./configure --with-ssl
4. make
5. sudo make install
这样就允许安装的python3使用ssl功能模块,进入python3中,执行import ssl发现未出错,再次调用pip指令来安装numpy,发现正常,问题解决