Python3的安装方式非常的简单,首先去到Python下载目录下载想要的Python包,这里我选择了3.6.5版本

  1. $ wget https://www.python.org/ftp/python/3.6.5/Python-3.6.5.tgz
  2. ---- ::-- https://www.python.org/ftp/python/3.6.5/Python-3.6.5.tgz
  3. Resolving www.python.org (www.python.org)... 151.101.24.223, 2a04:4e42:2e::
  4. Connecting to www.python.org (www.python.org)|151.101.24.223|:... connected.
  5. HTTP request sent, awaiting response... OK
  6. Length: (22M) [application/octet-stream]
  7. Saving to: Python-3.6..tgz
  8.  
  9. %[=====================================================================================================================================================>] ,, .16MB/s in 14s
  10.  
  11. -- :: (1.57 MB/s) - Python-3.6..tgz saved [/]

然后解压缩:

  1. $ tar -xzvf Python-3.6..tgz

开始编译安装:

  1. $ cd Python-3.6./
  2. $ ./configure
  3. ... ...
  4. config.status: creating Makefile.pre
  5. config.status: creating Modules/Setup.config
  6. config.status: creating Misc/python.pc
  7. config.status: creating Misc/python-config.sh
  8. config.status: creating Modules/ld_so_aix
  9. config.status: creating pyconfig.h
  10. creating Modules/Setup
  11. creating Modules/Setup.local
  12. creating Makefile
  13.  
  14. If you want a release build with all stable optimizations active (PGO, etc),
  15. please run ./configure --enable-optimizations

可以看到最后有一行很醒目的提示,这行提示可以忽略,它的意义是是否想要编译一个允许各种优化(例如PGO——Profile-guided optimization,这是GCC支持的一个优化选项,可以提升程序性能,有兴趣的同学可以自行谷歌)的版本,如果想要,可以运行 ./configure --enable-optimizations。我这里选择忽略,继续编译:

  1. $ make
    $ sudo make install
  2. zipimport.ZipImportError: can't decompress data; zlib not available
  3. make: *** [install] Error

出现了报错,缺少zlib,直接安装下:

  1. $ sudo yum install zlib*

继续安装:

  1. $ sudo make install

到这一步还不行,用python --version看到的版本还是老的:

  1. $ python --version
  2. Python 2.7.
  3.  
  4. $ which python
  5. /usr/bin/python
  6.  
  7. $ ls -lh /usr/bin | grep python
  8. lrwxrwxrwx root root Apr : python -> python2
  9. lrwxrwxrwx root root Apr : python2 -> python2.
  10. -rwxr-xr-x root root .0K Aug python2.

可以看到默认的python程序指向了python2.7,所以需要删除这个软连接,建立新版本的软连接:

  1. $ ls -lh /usr/local/bin/ | grep python
  2. lrwxrwxrwx root root Jun : python3 -> python3.
  3. -rwxr-xr-x root root 13M Jun : python3.
  4. lrwxrwxrwx root root Jun : python3.-config -> python3.6m-config
  5. -rwxr-xr-x root root 13M Jun : python3.6m
  6. -rwxr-xr-x root root .1K Jun : python3.6m-config
  7. lrwxrwxrwx root root Jun : python3-config -> python3.-config
  8.  
  9. $ sudo rm /usr/bin/python
  10. $ sudo ln -s /usr/local/bin/python3 /usr/bin/python
  11. $ python --version
  12. Python 3.6.

可以看到,建立映射之后,python版本目前为3.6.5,到这里还没完,pip还是指向了原来的版本:

  1. $ pip --version
  2. pip 10.0. from /usr/lib/python2./site-packages/pip (python 2.7)

同样的,查看下pip的位置:

  1. $ which pip
  2. /usr/bin/pip
  3.  
  4. $ ls -lh /usr/bin/ | grep pip
  5. -rwxr-xr-x. root root .3K Jul lesspipe.sh
  6. -rwxr-xr-x root root Jun : pip
  7. -rwxr-xr-x root root Jun : pip2
  8. -rwxr-xr-x root root Jun : pip2.
  9.  
  10. $ ls -lh /usr/local/bin/ | grep pip
  11. -rwxr-xr-x root root Jun : pip3
  12. -rwxr-xr-x root root Jun : pip3.

/usr/bin/pip不是一个软连接,所以不直接删除,做个备份:

  1. $ sudo mv /usr/bin/pip /usr/bin/pip2_for_python2.7_bak
  2. $ ls -lh /usr/bin/ | grep pip
  3. -rwxr-xr-x. root root .3K Jul lesspipe.sh
  4. -rwxr-xr-x root root Jun : pip2
  5. -rwxr-xr-x root root Jun : pip2.
  6. -rwxr-xr-x root root Jun : pip2_for_python2.7_bak

然后建立软连接:

  1. $ sudo ln -s /usr/local/bin/pip3 /usr/bin/pip
  2. $ pip --version
  3. pip 9.0. from /usr/local/lib/python3./site-packages (python 3.6)

pip版本也成功的切换了,后续可能还会遇到一些类似的python路径问题,都可以依此解决。

安装成功之后,使用yum的时候会出现报错:

  1. $ sudo yum install zip
  2. File "/bin/yum", line
  3. except KeyboardInterrupt, e:
  4. ^

这是因为yum的包管理,是基于python2.x写的,跟python3有语法上的不兼容。

这个时候可以修改下yum的配置文件:

  1. $ sudo vim /usr/bin/yum

将第一行的“#!/usr/bin/python” 改为 “#!/usr/bin/python2.7”

类似的,同样修改下/usr/libexec/urlgrabber-ext-down。

Centos7手动编译安装Python3的更多相关文章

  1. centos7手动编译安装Libvirt常见问题

    由于功能需要,体验了手动编译安装Libvrt,还是碰到了不少问题,这里总结如下仅限于centos7: 1.configure: error: You must install the pciacces ...

  2. CentOS7.6编译安装Python-3.7.4

    安装步骤 1. 下载安装包.wget https://www.python.org/ftp/python/3.7.4/Python-3.7.4.tgz<说明>如果报SSL/TSL错误,则加 ...

  3. centos7下编译安装python3.7,且与python2.7.5共存

    环境:Centos7.6 x64 一.安装python3.7 下载python源码包: wget https://www.python.org/ftp/python/3.7.4/Python-3.7. ...

  4. CentOS7下编译安装Python3.7.x【亲测有效】

    所有操作都在root用户下操作 下载安装包 编译安装 建立软链接 验证 安装: 更新yum: yum update 安装Python依赖: yum install openssl-devel bzip ...

  5. CentOS7手动编译安装内核4.11.7

    1. 进入/usr/src/目录 cd /usr/src 2. 下载内核源码,网址:https://www.kernel.org wget https://cdn.kernel.org/pub/lin ...

  6. centos7编译安装Python3所需要的库(模块)依赖

    在centos中编译安装python3环境,第三方的库 实战的编辑环境: 1.VMware虚拟机   2.centos7 依赖包经过百度搜集以及之前安装Python3报错搜集(centos7反反复复安 ...

  7. CentOS手动编译安装gcc

    最近尝试了fedora.ubuntu.mint.debian.opensuse等多种linux发行版,与CentOS比较之后还是感觉之前用的CentOS比较熟悉,比较习惯.现在CentOS的最新版本为 ...

  8. CentOS 源码编译安装 Python3

    准备 yum -y install wget gcc make libffi-devel zlib-devel readline-devel bzip2-devel ncurses-devel sql ...

  9. centos7.2下安装python3.6.2

    centos7.2默认已经安装了python2.7.5,因此要安装python3.6的话,得从python官网上下载相应版本的安装包 查看python2.7 1.下载:wget https://www ...

随机推荐

  1. 网站微信登录-python 实现

    最近微信登录开放公测,为了方便微信用户使用,我们的产品也决定加上微信登录功能,然后就有了这篇笔记. 根据需求选择相应的登录方式 微信现在提供两种登录接入方式 移动应用微信登录 网站应用微信登录 这里我 ...

  2. iOS-----简易地CocoaAsyncSocket使用

    CocoaAsyncSocket使用 代理的.h文件 //GCDAsyncSocketDelegate执行代理对象 #import <Foundation/Foundation.h> #i ...

  3. 博客(第0次作业)—— New Starting Point

    一.最理想的师生关系是健身教练和学员的关系,在这种关系中你期望获得来自老师的那些帮助? 正如文章中所说,这些学员的想法得足够强烈, 他/她才会花钱去参加这样的健身活动,每一个来学习的学生,  都是想学 ...

  4. windows server 2008 r2 修改远程登入的端口号(3389)

    步骤:打开“开始→运行”,输入“regedit”,打开注册表,进入以下路径:[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal ...

  5. HDU4261 Estimation

    题意 Estimation Time Limit: 40000/15000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others ...

  6. 在服务器上运行db:seed数据填充时,出错的问题解决

    在服务器上运行db:seed数据填充时,出错的问题解决 运行composer  dump-autoload

  7. Mysql 批量插入数据的方法

    使用的方式是 MySqlBulkLoader 方法如下: 1. 转化datatable 为文件 2. 使用MySqlBulkLoader 进行数据的加载 代码: public static void ...

  8. jQuery因mouseover,mouseout冒泡产生的闪烁问题

    由于浏览器的冒泡行为.造成如果在一个DIV元素上同时定义了mouseover,mouseout的时候,当鼠标移动到DIV中的child子元素的时候,就会同时执行了两个操作mouseover和mouse ...

  9. oracle之 数据泵dump文件存放nfs报ORA-27054

    问题描述:源端 10.2.0.4  目标端:11.2.0.4   在目标端划分1T存储与源端做一个NFS 错误:指定dump导出为本地文件系统,正常.   指定dump导出为nfs文件系统,报错. 报 ...

  10. android adb端口被占用解决方法

    1.输入adb devices命令 C:\Users\Nick>adb devices List of devices attached adb server version (31) does ...