一个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,发现正常,问题解决

 

Logo

助力广东及东莞地区开发者,代码托管、在线学习与竞赛、技术交流与分享、资源共享、职业发展,成为松山湖开发者首选的工作与学习平台

更多推荐