Centos7手动编译安装Python3
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的更多相关文章
- centos7手动编译安装Libvirt常见问题
由于功能需要,体验了手动编译安装Libvrt,还是碰到了不少问题,这里总结如下仅限于centos7: 1.configure: error: You must install the pciacces ...
- CentOS7.6编译安装Python-3.7.4
安装步骤 1. 下载安装包.wget https://www.python.org/ftp/python/3.7.4/Python-3.7.4.tgz<说明>如果报SSL/TSL错误,则加 ...
- 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. ...
- CentOS7下编译安装Python3.7.x【亲测有效】
所有操作都在root用户下操作 下载安装包 编译安装 建立软链接 验证 安装: 更新yum: yum update 安装Python依赖: yum install openssl-devel bzip ...
- CentOS7手动编译安装内核4.11.7
1. 进入/usr/src/目录 cd /usr/src 2. 下载内核源码,网址:https://www.kernel.org wget https://cdn.kernel.org/pub/lin ...
- centos7编译安装Python3所需要的库(模块)依赖
在centos中编译安装python3环境,第三方的库 实战的编辑环境: 1.VMware虚拟机 2.centos7 依赖包经过百度搜集以及之前安装Python3报错搜集(centos7反反复复安 ...
- CentOS手动编译安装gcc
最近尝试了fedora.ubuntu.mint.debian.opensuse等多种linux发行版,与CentOS比较之后还是感觉之前用的CentOS比较熟悉,比较习惯.现在CentOS的最新版本为 ...
- CentOS 源码编译安装 Python3
准备 yum -y install wget gcc make libffi-devel zlib-devel readline-devel bzip2-devel ncurses-devel sql ...
- centos7.2下安装python3.6.2
centos7.2默认已经安装了python2.7.5,因此要安装python3.6的话,得从python官网上下载相应版本的安装包 查看python2.7 1.下载:wget https://www ...
随机推荐
- 网站微信登录-python 实现
最近微信登录开放公测,为了方便微信用户使用,我们的产品也决定加上微信登录功能,然后就有了这篇笔记. 根据需求选择相应的登录方式 微信现在提供两种登录接入方式 移动应用微信登录 网站应用微信登录 这里我 ...
- iOS-----简易地CocoaAsyncSocket使用
CocoaAsyncSocket使用 代理的.h文件 //GCDAsyncSocketDelegate执行代理对象 #import <Foundation/Foundation.h> #i ...
- 博客(第0次作业)—— New Starting Point
一.最理想的师生关系是健身教练和学员的关系,在这种关系中你期望获得来自老师的那些帮助? 正如文章中所说,这些学员的想法得足够强烈, 他/她才会花钱去参加这样的健身活动,每一个来学习的学生, 都是想学 ...
- windows server 2008 r2 修改远程登入的端口号(3389)
步骤:打开“开始→运行”,输入“regedit”,打开注册表,进入以下路径:[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal ...
- HDU4261 Estimation
题意 Estimation Time Limit: 40000/15000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others ...
- 在服务器上运行db:seed数据填充时,出错的问题解决
在服务器上运行db:seed数据填充时,出错的问题解决 运行composer dump-autoload
- Mysql 批量插入数据的方法
使用的方式是 MySqlBulkLoader 方法如下: 1. 转化datatable 为文件 2. 使用MySqlBulkLoader 进行数据的加载 代码: public static void ...
- jQuery因mouseover,mouseout冒泡产生的闪烁问题
由于浏览器的冒泡行为.造成如果在一个DIV元素上同时定义了mouseover,mouseout的时候,当鼠标移动到DIV中的child子元素的时候,就会同时执行了两个操作mouseover和mouse ...
- oracle之 数据泵dump文件存放nfs报ORA-27054
问题描述:源端 10.2.0.4 目标端:11.2.0.4 在目标端划分1T存储与源端做一个NFS 错误:指定dump导出为本地文件系统,正常. 指定dump导出为nfs文件系统,报错. 报 ...
- android adb端口被占用解决方法
1.输入adb devices命令 C:\Users\Nick>adb devices List of devices attached adb server version (31) does ...