需求:

centos环境,python2.7需要升级为python3.x


1.请先手动(再次)安装 openssl 。否则你升级之后,你的pip不能下载,会各种报错的。

比如这种错误:

ImportError: Entry point ('console_scripts', 'easy_install') not found
pip is configured with locations that require TLS/SSL, however the ssl module in Python is not avail

pip报错帖子1,pip报错帖子2, pip报错帖子3,报错帖子4

执行 pip  -V 检查 pip是pip2的还是pip3的。

随便安装一个模块,看看是否会报错。(我们假设你这里是指向pip3的pip命令,因为你已经安装了Python3嘛)

比如:

pip  install   lxml

如何安装 openssl,请看这里:https://www.cnblogs.com/music-liang/p/11888672.html


安装完openssl之后,请继续往下看:


如果你对 环境变量了解,对软链接不熟悉,请先看完这个介绍:

环境变量:

linux下面可以直接运行的某些命令,是因为这些命令都在 环境变量 指定的路径下面,而这个路径,就是  /usr/bin/ 。

例如 /usr/bin/  下面有一个python文件,那么,你就可以正常地在终端(terminal)运行 python命令

[root@VM_0_10_centos python3]# ls -la  /usr/bin | grep python
lrwxrwxrwx root root Mar python -> python2.7
lrwxrwxrwx root root Mar python2 -> python2.
-rwxr-xr-x root root Aug python2.

软链接(快捷方式):

就类似于windows里面的快捷方式。 软连接相关命令是  ln -s 。具体请参考这里。

你会发现,我这里有2个软链接(快捷方式),分别是python, python2( 有 ->  符号的那2个),它们都是python2.7这个文件的软链接(快捷方式)。

我们待会会安装python3,然后在这里 ( /usr/bin )放一个名叫python的软连接(快捷方式)。

目前,请先不要删除。。。安装完成后再来做这一步操作。


环境变量和软连接的介绍到此完毕,下面进入正题:

用root权限账号登录,执行下面的安装名。

1.下载最新版本的python

wget https://www.python.org/ftp/python/3.8.0/Python-3.8.0.tgz

2.解压。解压出来的文件是Python-3.8.0(不同版本,名称不一样)

tar -zxvf Python-3.8..tgz

3.进入Python-3.8.0文件夹

cd  Python-3.8.

4.创建Python3的安装路径

mkdir  /usr/local/python3

5.运行(Python-3.8.0文件夹)里面的配置脚本

./configure --prefix=/usr/local/python3 --enable-optimizations --with-openssl=/usr/local/openssl/

6.编译 (直接输入make命令,按下回车键就好)

make 

make test 

6.1可能的报错:

我安装3.5版的时候,没有报错。但是安装3.7版本的时候,有个报错

错误如下:

Failed to build these modules:_ctypes binascii   

解决方案,安装 libffi-devel

yum install libffi-devel -y

如果你在刚才的过程中出错了,请记得在安装了 libffi-devel之后执行 make clean  清理工程;然后重新make 编译工程。

7.安装

make install

8.如果报错了

8.1.如果是 zlib错误,请安装 zlib

可能的报错信息:
zipimport.ZipImportError: can't decompress data; zlib not available
make: *** [install] Error

安装 zlib命令如下:

yum -y install zlib* 

8.2 如果是其他的报错,请仔细阅读报错的英文信息,动手解决问题。

或者去互联网上搜素,如何解决这个报错。

问题解决之后,执行  make install  ,安装python3.

9.到这里,假设您已经成功安装了python3

此时查看python,你会看到,还是之前的python2.x。

因为python3还未加入到环境变量下面,系统没法运行python3。

10.删除 环境变量 (/usr/bin)下面的  python 软链接(快捷方式),创建Python3的软链接(快捷方式)

如果你不清楚这里说的环境变量(/usr/bin),软链接等概念,请回到开头再看看前面提到的信息。

删除旧的python快捷方式(之前由python2创建的)
rm /usr/bin/python
创建我们Python3的软链接(快捷方式),这次我们创建2个

ln -s /usr/local/python3/bin/python3 /usr/bin/python3

ln -s /usr/local/python3/bin/python3 /usr/bin/python

11.输入终端(terminal) python  -V ,来验证 python3是否安装成功。

你还可以输入python3 -V,会有同样的效果,这个也是合法的命令。

12.yum 被影响了,修改回来

/usr/bin/yum
/usr/libexec/urlgrabber-ext-down

yum需要python2.x来解释执行。

这2个文件的第1行,将python 改为  python2.7(如果你的2.x版本不同,就输入你的python名称)

请好好理解  环境变量、软链接(快捷方式)的概念。你就会知道如何修改这里了。

13.大功告成

  祝你学习进步,学有所成。

参考链接:https://stackoverflow.com/questions/27022373/python3-importerror-no-module-named-ctypes-when-using-value-from-module-mul

python2升级python3的更多相关文章

  1. linux下python2升级python3,python2和python3并存

    wget https://www.python.org/ftp/python/3.6.4/Python-3.6.4.tgz 解压:tar -xzvf Python-3.6.4.tgz cd Pytho ...

  2. Linux下python安装升级详细步骤 | Python2 升级 Python3

    Linux下python升级步骤  Python2 ->Python3 多数情况下,系统自动的Python版本是2.x 或者yum直接安装的也是2.x 但是,现在多数情况下建议使用3.x 那么如 ...

  3. Linux下Python2升级Python3

    Linux下Python2的升级方法: 一.下载Python3安装包: 1.在线下载 wget https://www.python.org/ftp/python/3.6.2/Python-3.6.2 ...

  4. Linux下python安装升级详细步骤 | Python2 升级 Python3 转载

    Linux下python升级步骤  Python2 ->Python3 多数情况下,系统自动的Python版本是2.x 或者yum直接安装的也是2.x 但是,现在多数情况下建议使用3.x 那么如 ...

  5. ubuntu Python2 升级Python3

    今天买了一台阿里的服务器, 想搭建一个爬虫, 但是 服务器是python2的, 需要升级到python3 1. 下载python3的包 wget https://www.python.org/ftp/ ...

  6. centos7 python2升级python3

    安装前的准备环境 yum install gcc patch libffi-devel python-devel zlib-devel bzip2-devel openssl-devel ncurse ...

  7. scrapy python2升级python3遇到的坑

    换成Python3首先pycharm先执行: 然后看代码自己所需要的第三方库都要重新装 然后执行代码: 遇到这样的错如下: SyntaxError: invalid syntax 先检查print 所 ...

  8. 正则表达式 解决python2升python3的语法问题

      2019.9.12 更新   今天偶然看到 python 官网中,还介绍了一个专门的工具,用于 python2 升级 python3,以后有机会使用下看看 https://docs.python. ...

  9. 装python package 时,conda提示会升级python2到python3,那可能是你的windows不支持py2env下的此包。

    装python package 时,conda提示会升级python2到python3, 那可能是你的windows不支持py2env下的此包.比如:win 下,tensorflow就不支持py2的环 ...

随机推荐

  1. 练手WPF(四)——贪吃蛇小游戏的简易实现(下)

    八.生成新的单节蛇身我们这里先说说游戏小原理好了,游戏运行后,通过计时器事件不断生成新的单节蛇身类SnakeNode,添加到List中的0位置,原来的蛇头变成了第二节.该节新蛇头的坐标通过蛇头前进方向 ...

  2. [Tomcat源码分析] Eclipse中搭建Apache Tomcat源码调试环境

    网上很多文章都推荐使用Ant下载编译,但本地实践中屡屡失败,无法下载. 后来参考 https://blog.csdn.net/xiongyouqiang/article/details/7894107 ...

  3. 350道面试题分享,拿下京东offer工资double

    350道面试题分享,拿下京东offer工资double 前言: 面试,其实是一个双向选择的过程,在这个过程里,我们不应该抱着畏惧的心态去对待,这样反而会影响自己的发挥.同时看中的应该不止薪资,还要看你 ...

  4. Ext.create使用(下)

    本文介绍第三种使用方法: //通过类的引用实例化一个类 var w1 = Ext.create(Ext.window.Window, {//类的引用 title: '窗体', html:'<fo ...

  5. maven 学习---Maven配置之pom文件配置包含和排除测试

    本文地址:http://blog.csdn.net/wirelessqa/article/details/14057083 包含(Inclusions )默认情况下Surefire Plugin会自动 ...

  6. flink 批量梯度下降算法线性回归参数求解(Linear Regression with BGD(batch gradient descent) )

    1.线性回归 假设线性函数如下: 假设我们有10个样本x1,y1),(x2,y2).....(x10,y10),求解目标就是根据多个样本求解theta0和theta1的最优值. 什么样的θ最好的呢?最 ...

  7. JavaScript深入浅出第5课:Chrome是如何成功的?

    摘要: Chrome改变世界. <JavaScript深入浅出>系列: JavaScript深入浅出第1课:箭头函数中的this究竟是什么鬼? JavaScript深入浅出第2课:函数是一 ...

  8. linux epoll,poll,select

    epoll函数用法,还有点poll和select 1,LT的epoll是select和poll函数的改进版. 特点是,读完缓冲区后,如果缓冲区还有内容的话,epoll_wait函数还会返回,直到把缓冲 ...

  9. 【比赛游记】CSP2019游记

    往期回顾:[比赛游记]NOIP2018游记 提高 D1: 密码 Ren2Zhen1Si0Kao9?. A B C 00:04 00:32 -5 \(100 + 100 + 0 = 200\) 因为提前 ...

  10. CPDF_Document

    auto pDoc = std::unique_ptr<CPDF_Document>(); pDoc->CreateNewDoc(); auto pDict = CPDF_Dicti ...