python3 编译安装
前言:
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 编译安装的更多相关文章
- Python3编译安装以及创建虚拟运行环境
一.yum安装pip# yum -y install epel-release #Centos6.8安装epel源# yum -y install python-pip手动安装pip# wget ...
- python3编译安装no module named _ssl
使用源码编译安装python3.6.7以后用pip 安装库, 出现如下问题 Retrying (Retry(total=4, connect=None, read=None, redirect=Non ...
- Python3编译安装ssl模块问题
本文以Centos系统为例 1.确保linux系统中安装了ssl-devel包 2.编译安装ssl模块到Python3中 1.查看linux系统中是否安装了ssl-devel包 # 查看命令 rpm ...
- python3编译安装
linux下配置安装python3一.首先,官网下载python3的所需版本.wget https://www.python.org/ftp/python/3.6.0/Python-3.6.0.tgz ...
- Linux之python3编译安装
一,前言 centos7默认是装有python的,咱们先看一下 [root@glh ~ 20:18:03]#python Python 2.7.5 (default, Jul 13 2018, 13: ...
- CentOS7下编译安装Python3.7.x【亲测有效】
所有操作都在root用户下操作 下载安装包 编译安装 建立软链接 验证 安装: 更新yum: yum update 安装Python依赖: yum install openssl-devel bzip ...
- Linux 编译安装python3
编译安装python3的步骤 1.很重要,必须执行此操作,安装好编译环境,c语言也是编译后运行,需要gcc编译器golang,对代码先编译,再运行,python是直接运行yum install gcc ...
- 源代码编译安装Python3.5.2
由于没有找到Python3.5的rpm安装包,因此进行源代码编译安装 1.下载Python3.5.2 [root@seastar ~]# cd /usr/local/src [root@seastar ...
- Linux下编译安装python3
Linux下默认系统自带python2.6的版本,这个版本被系统很多程序所依赖,所以不建议删除,如果使用最新的Python3那么我们知道编译安装源码包和系统默认包之间是没有任何影响的,所以可以安装py ...
随机推荐
- SFTP数据迁移
背景 服务器部署到aliyun上,之前sftp数据又是在系统盘上,由于现在数据量越来越大,导致系统盘无法满足现有要求,所以需要对sftp相关数据进行迁移至数据盘. 方案 方案一:原数据复制到新磁盘中, ...
- 使用vue-print-nb插件页面空白以及打印没有样式问题
在使用vue-print-nb中遇到两个问题: 第一个问题:点击打印后,打印的内容是一片空白 vue-print-nb的原理大概是在你的页面上创建一个iframe,然后把你要打印的那一个div抓出来给 ...
- Junit4学习使用和总结
Junit4学习使用和总结 部分资料来源于网络 编辑于:20190710 一.Junit注解理解 1.@RunWith 首先要分清几个概念:测试方法.测试类.测试集.测试运行器.其中测试方法就是用@T ...
- django基础知识之Ajax:
使用Ajax 使用视图通过上下文向模板中传递数据,需要先加载完成模板的静态页面,再执行模型代码,生成最张的html,返回给浏览器,这个过程将页面与数据集成到了一起,扩展性差 改进方案:通过ajax的方 ...
- Oracle修改字段类型报错:“ORA-01439:要更改数据类型,则要修改的列必须为空”
在oracle修改user表字段name类型时遇到报错:“ORA-01439:要更改数据类型,则要修改的列必须为空”,是因为要修改字段的新类型和原来的类型不兼容. 如果要修改的字段数据为空时,则不会报 ...
- 深入学习Spring框架(四)- 事务管理
1.什么是事务? 事务(Transaction)是一个操作序列.这些操作要么都做,要么都不做,是一个不可分割的工作单位,是数据库环境中的逻辑工作单位.事务是为了保证数据库的完整性.例如:A给B转账,需 ...
- 【webpack系列】webpack4.x入门配置基础(一)
一.前言 webpack在不断的迭代优化,目前已经到了4.29.6.在webpack4这个版本中,做了很多优化,引入了很多特性,将获得更多模块类型,.mjs支持,更好的默认值,更为简洁的模式设置,更加 ...
- HBaseCon Asia2019 会议总结
一.首先会议流程. 1. The current status of HBase 2.The advantage and technology trend of HBase on the cloud ...
- 看MySQL的参数调优及数据库锁实践有这一篇足够了
史上最强MySQL参数调优及数据库锁实践 1. 应用优化 1.2 减少对MySQL的访问 1.2.1 避免对数据进行重复检索 1.2.2 增加cache层 1.3 负载均衡 1.3.1 利用MySQL ...
- java.util.LinkedHashMap cannot be cast to
Jackson转换泛型List出现错误java.util.LinkedHashMap cannot be cast to com.xxx ObjectMapper mapper = new Objec ...