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

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

然后解压缩:

$ tar -xzvf Python-3.6..tgz

开始编译安装:

$ cd Python-3.6./
$ ./configure
... ...
config.status: creating Makefile.pre
config.status: creating Modules/Setup.config
config.status: creating Misc/python.pc
config.status: creating Misc/python-config.sh
config.status: creating Modules/ld_so_aix
config.status: creating pyconfig.h
creating Modules/Setup
creating Modules/Setup.local
creating Makefile If you want a release build with all stable optimizations active (PGO, etc),
please run ./configure --enable-optimizations

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

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

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

$ sudo yum install zlib* 

继续安装:

$ sudo make install

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

$ python --version
Python 2.7. $ which python
/usr/bin/python $ ls -lh /usr/bin | grep python
lrwxrwxrwx root root Apr : python -> python2
lrwxrwxrwx root root Apr : python2 -> python2.
-rwxr-xr-x root root .0K Aug python2.

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

$ ls -lh /usr/local/bin/ | grep python
lrwxrwxrwx root root Jun : python3 -> python3.
-rwxr-xr-x root root 13M Jun : python3.
lrwxrwxrwx root root Jun : python3.-config -> python3.6m-config
-rwxr-xr-x root root 13M Jun : python3.6m
-rwxr-xr-x root root .1K Jun : python3.6m-config
lrwxrwxrwx root root Jun : python3-config -> python3.-config $ sudo rm /usr/bin/python
$ sudo ln -s /usr/local/bin/python3 /usr/bin/python
$ python --version
Python 3.6.

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

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

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

$ which pip
/usr/bin/pip $ ls -lh /usr/bin/ | grep pip
-rwxr-xr-x. root root .3K Jul lesspipe.sh
-rwxr-xr-x root root Jun : pip
-rwxr-xr-x root root Jun : pip2
-rwxr-xr-x root root Jun : pip2. $ ls -lh /usr/local/bin/ | grep pip
-rwxr-xr-x root root Jun : pip3
-rwxr-xr-x root root Jun : pip3.

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

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

然后建立软连接:

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

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

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

$ sudo yum install zip
File "/bin/yum", line
except KeyboardInterrupt, e:
^

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

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

$ 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. poj3680

    题解: 相邻的建边 每一段建边 然后见一个原点,汇点 代码: #include<cstdio> #include<cmath> #include<cstring> ...

  2. android中LayoutInflater.from(context).inflate的分析

    在应用中自定义一个view,需要获取这个view的布局,需要用到 (LinearLayout) LayoutInflater.from(context).inflate(R.layout.conten ...

  3. js实现trim()方法

    在面向对象编程里面去除字符串左右空格是很容易的事,可以使用trim().ltrim() 或 rtrim(),在jquery里面使用$.trim()也可以轻松的实现.但是在js中却没有这个方法.下面的实 ...

  4. Java第二次作业--数组和String类

    Deadline: 2017-3-28 23:00 一.学习要点 认真看书并查阅相关资料,掌握以下内容: 掌握基本数据类型和引用数据类型的区别 理解对象的生成与引用的关系 掌握构造方法的重载 掌握St ...

  5. [CF321E]Ciel and Gondolas&&[BZOJ5311]贞鱼

    codeforces bzoj description 有\(n\)个人要坐\(k\)辆车.如果第\(i\)个人和第\(j\)个人同坐一辆车,就会产生\(w_{i,j}\)的代价. 求最小化代价.\( ...

  6. 使用UltraISO制作U盘启动

    下面给你提供是的一个万能的制作系统U盘的方法,用这个U盘你可以加载任何你想要的系统,即使是Linux系统都是可以,你需要做的就是下载安装软件,下载一个系统安装光盘的镜像文件,然后用软件导入到U盘就可以 ...

  7. bzoj2875随机数生成器

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2875 矩阵乘裸题. 如果直接乘的话会爆long long,所以用加法代替乘,过程中不断取模. ...

  8. windows 内存分配回收检查工具

    LeakDiag是微软一款检测memory leak的工具,使用比较简单 首先去下载一个ftp://ftp.microsoft.com/PSS/Tools/Developer%20Support%20 ...

  9. 黄聪:win7 64位系统PS、AI、PSD缩略图预览补丁

    MysticThumbs支持Windows 7 / Vista / XP,32位和64位.除了预览PSD以外,还支持DDS.SGI缩略图显示. Mystic Thumbs是一款用来支持win7 64位 ...

  10. 内存泄漏检测工具VLD在VS2010中的使用举例

    Visual LeakDetector(VLD)是一款用于Visual C++的免费的内存泄露检测工具.它的特点有:(1).它是免费开源的,采用LGPL协议:(2).它可以得到内存泄露点的调用堆栈,可 ...