前言:

  Linux下大部分系统默认自带python2.x的版本,最常见的是python2.6或python2.7版本,默认的python被系统很多程序所依赖,比如centos下的yum就是python2写的,所以默认版本不要轻易删除,否则会有一些问题,如果需要使用最新的Python3那么我们可以编译安装源码包到独立目录,这和系统默认环境之间是没有任何影响的,python3和python2两个环境并存即可

  预处理

[root@python ~]# python -V        //查看自带版本
Python 2.7.
[root@python ~]# mkdir python3
[root@python ~]# cd python3/ [root@python ~]# wget https://www.python.org/ftp/python/3.7.2/Python-3.7.2.tgz //目前最新版本

  准备好python的源码包,接下来准备编译安装所需的依赖包;

[root@python ~]# yum -y install zlib-devel bzip2-devel openssl-devel sqlite-devel readline-devel
[root@python ~]# yum install libffi-devel -y

  编译前预设

[root@python ~]# cd python3/Python-3.7./
[root@python Python-3.7.]# pwd
/root/python3/Python-3.7.
[root@python Python-3.7.]# ls
aclocal.m4 Doc m4 Parser README.rst
CODE_OF_CONDUCT.rst Grammar Mac PC setup.py
config.guess Include Makefile.pre.in PCbuild Tools
config.sub install-sh Misc Programs
configure Lib Modules pyconfig.h.in
configure.ac LICENSE Objects Python
[root@python Python-3.7.]# sed -ri 's/^#readline/readline/' Modules/Setup.dist
[root@python Python-3.7.]# sed -ri 's/^#(SSL=)/\1/' Modules/Setup.dist
[root@python Python-3.7.]# sed -ri 's/^#(_ssl)/\1/' Modules/Setup.dist
[root@python Python-3.7.]# sed -ri 's/^#([\t]*-DUSE)/\1/' Modules/Setup.dist
[root@python Python-3.7.]# sed -ri 's/^#([\t]*-L\$\(SSL\))/\1/' Modules/Setup.dist

  设置完成,进行编译前的配置

[root@python Python-3.7.]# ./configure  --prefix=/usr/python

//看到以下结果
configure: creating ./config.status
config.status: creating Makefile.pre
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

  开始编译

[root@python Python-3.7.]# make -j 

[root@python Python-3.7.]# make install
//执行最后有以下
Collecting setuptools
Collecting pip
Installing collected packages: setuptools, pip
Successfully installed pip-18.1 setuptools-40.6.

  编译安装完成

[root@python Python-3.7.]# ln -s /usr//python/bin/python3 /usr/bin/python3
[root@python Python-3.7.]# which python3
/bin/python3
[root@python Python-3.7.]# python3 -V
Python 3.7.

pip 安装

[root@python Python-3.7.]# cd ..
[root@python python3]# ls
Python-3.7. Python-3.7..tgz
[root@python python3]# curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py

python3 绑定pip

[root@python python3]# python3 get-pip.py        //使用哪个python版本,pip就会绑定在哪个版本

完成安装

[root@python ~]# ln -s /usr/python/bin/pip3 /usr/bin/pip3

[root@python ~]# which pip3
/bin/pip3
[root@python ~]# pip3 -V
pip 19.0. from /usr/python/lib/python3./site-packages/pip (python 3.7)
[root@python ~]#

python3 编译安装的更多相关文章

  1. Python3编译安装以及创建虚拟运行环境

    一.yum安装pip# yum -y install epel-release   #Centos6.8安装epel源# yum -y install python-pip手动安装pip# wget ...

  2. python3编译安装no module named _ssl

    使用源码编译安装python3.6.7以后用pip 安装库, 出现如下问题 Retrying (Retry(total=4, connect=None, read=None, redirect=Non ...

  3. Python3编译安装ssl模块问题

    本文以Centos系统为例 1.确保linux系统中安装了ssl-devel包 2.编译安装ssl模块到Python3中 1.查看linux系统中是否安装了ssl-devel包 # 查看命令 rpm ...

  4. python3编译安装

    linux下配置安装python3一.首先,官网下载python3的所需版本.wget https://www.python.org/ftp/python/3.6.0/Python-3.6.0.tgz ...

  5. Linux之python3编译安装

    一,前言 centos7默认是装有python的,咱们先看一下 [root@glh ~ 20:18:03]#python Python 2.7.5 (default, Jul 13 2018, 13: ...

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

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

  7. Linux 编译安装python3

    编译安装python3的步骤 1.很重要,必须执行此操作,安装好编译环境,c语言也是编译后运行,需要gcc编译器golang,对代码先编译,再运行,python是直接运行yum install gcc ...

  8. 源代码编译安装Python3.5.2

    由于没有找到Python3.5的rpm安装包,因此进行源代码编译安装 1.下载Python3.5.2 [root@seastar ~]# cd /usr/local/src [root@seastar ...

  9. Linux下编译安装python3

    Linux下默认系统自带python2.6的版本,这个版本被系统很多程序所依赖,所以不建议删除,如果使用最新的Python3那么我们知道编译安装源码包和系统默认包之间是没有任何影响的,所以可以安装py ...

随机推荐

  1. Java 8 新特性-Stream更优雅的处理集合入门

    Java 8 新特性之--Stream 一. 简单介绍 Stream是Java 8提出了的一种新的对集合对象功能的增强.它集合Lambda表达式,对集合提供了一些非常便利,高效的操作,使得代码具有非常 ...

  2. Java中字符串的一些常用操作方法

      package test; public class  maintest {public static void main(String[] args) {String str = "a ...

  3. 项目中遇到的Redis缓存问题

    1.Redis服务器 can not get resource from pool. 1000个线程并发还能跑,5000个线程的时候出现这种问题,查后台debug日志,发现redis 线程池不够.刚开 ...

  4. 设计模式-模块方法模式(TemplateMethod)

    模块方法模式是行为模式之一,它把具有特定步骤算法中的某些必要的处理委让给抽象方法,通过子类继承对抽象方法的不同实现改变整个算法的行为. UML图: 具体代码: /** * 抽象-模块方法模式核心 */ ...

  5. 一张图带你了解webpack的require.context

    很多人应该像我一样,对于webpack的require.context都是一知半解吧.网上很多关于require.context的使用案例,但是我没找到可以帮助我理解这个知识点的,于是也决定自己来探索 ...

  6. python中的 == 和 is 的区别

    == 比较的是两边的值 is 比较的是两边的内存地址  通过 id()获取内存地址 小数据池:我们使用过的值存储在小数据池中,供其他数据使用. 小数据池仅限于 数字 和 字符串: 数字的小数池范围  ...

  7. ueditor 常用配置

    scaleEnabled:是否可以拉伸长高,默认true(当开启时,自动长高失效) autoHeightEnabled:是否自动长高,默认true catchRemoteImageEnable:设置远 ...

  8. GitHub & Git 的学习之始

    唉,简单地说,感受只有四个字:蓝瘦香菇. 我的GitHub地址为: https://github.com/LinJingYun  (这个,,我不知道具体从哪里找到自己地址啊) 接下来说一下我对git和 ...

  9. [原创]Floodlight安装

    Floodlight安装:一.安装环境: ubuntu-12.04-64bit二.安装Floodlight: #apt-get update #apt-get install build-essent ...

  10. vue-cli安装搭建初始项目

    vue-cli脚手架 前提:node + npm 安装好 一.介绍 vue-cli: Vue + ESLint + webpack + iview + ES6 Vue:主要框架ESLint:帮助我们检 ...