第1章 升级python

1.1 下载新版本

进入 Python下载页面,选择需要的版本。
这里,我选择的版本是 3.5.2 。

wget https://www.python.org/ftp/python/3.5.2/Python-3.5.2.tgz

1.2 解压缩

下载完成之后,进行解压缩:

tar -zxvf Python-3.5.2.tgz

1.3 安装配置

进入解压缩后的目录,安装配置:

cd Python-3.5.2/
./configure

执行 ./configure 时,如果报错:
configure: error: no acceptable C compiler found in $PATH
说明没有安装合适的编译器。这时,需要安装/升级 gcc 及其它依赖包。

yum install make gcc gcc-c++ zlib* openssl* libffi-devel -y

zlib*是编译安装python3.6以上版本的时候用到。

完成之后,重新执行:

./configure

编译 & 安装
配置完成之后,就可以编译了:

make

漫长的等待……完成后,安装:

make install

验证
安装成功以后,就可以查看 Python 的版本了:

python -V
Python 2.7.5
python3 -V
Python 3.5.2

一个是旧版本 2.x,另外一个是新版本 3.x。
注意:在 /usr/local/bin/ 下有一个 python3 的链接,指向 bin 目录下的 python 3.5。

1.4 设置 3.x 为默认版本

查看 Python 的路径,在 /usr/bin 下面。可以看到 python 链接的是 python 2.7,所以,执行 python 就相当于执行 python 2.7。

ls -al /usr/bin | grep python
-rwxr-xr-x.  1 root root      11216 12月  1 2015 abrt-action-analyze-python
lrwxrwxrwx.  1 root root          7 8月  30 12:11 python -> python2
lrwxrwxrwx.  1 root root          9 8月  30 12:11 python2 -> python2.7
-rwxr-xr-x.  1 root root       7136 11月 20 2015 python2.7

将原来 python 的软链接重命名:

mv /usr/bin/python /usr/bin/python.bak

将 python 链接至 python3:

ln -s /usr/local/bin/python3 /usr/bin/python

这时,再查看 Python 的版本:

python -V
Python 3.5.2

输出的是 3.x,说明已经使用的是 python3了。
配置 yum
升级 Python 之后,由于将默认的 python 指向了 python3,yum 不能正常使用,需要编辑 yum 的配置文件:

vi /usr/bin/yum

同时修改:

vi /usr/libexec/urlgrabber-ext-down

将 #!/usr/bin/python 改为 #!/usr/bin/python2.7,保存退出即可。

第2章 Python 解决命令行删除、退格乱码问题

安装了python 在命令行界面无法进行删除、退格

2.1 安装readline模块

两种方式:

yum install -y readline-devel  readline

或者
下载文件

https://pypi.python.org/pypi/readline
tar -xvf readline-6.2.4.1.tar.gz
cd readline-6.2.4.1
python setup.py install

2.2 第二种方法安装时候报错

/usr/bin/ld: cannot find -lncurses

有三种可能性
1 系统没有安装相对应的lib
2 相对应的lib版本不对
3 lib(.so档)的symbolic link 不正确,没有连结到正确的函式库文件(.so)

locate发现本地有libncurses的库包

修改为

重新安装后成功。
如果先安装了python需要重新编译一次 才生效
进入python安装目录 依次执行

./configure
make && make install

2.3 附:链接库相关

Linux 系统上有两类根本不同的 Linux 可执行程序。
第一类是静态链接的可执行程序。静态可执行程序包含执行所需的所有函数 — 换句话说,它们是“完整的”。因为这一原因,静态可执行程序不依赖任何外部库就可以运行。
第二类是动态链接的可执行程序
可以用 ldd 命令来确定某一特定可执行程序是否为静态链接的
如果动态可执行程序不包含运行所需的所有函数,动态装入器(dynamic loader)负责装入动态链接的可执行程序运行所需的共享库
动态装入器找到共享库要依靠两个文件 — /etc/ld.so.conf 和 /etc/ld.so.cache
①配置/etc/ld.so.conf
②ldconfig 将/etc/ld.so.conf更新到/etc/ld.so.cache
③动态装入器通过/etc/ld.so.cache加载库目录

共享库查看

# ldconfig -p | less

某些情况下,如果要指示动态装入器首先检查某个目录,请将 LD_LIBRARY_PATH 变量设置成您希望搜索的目录。多个路径之间用冒号分隔;例如:

# export LD_LIBRARY_PATH="/usr/lib/old:/opt/lib"

导出 LD_LIBRARY_PATH 后,如有可能,所有从当前 shell 启动的可执行程序都将使用 /usr/lib/old 或 /opt/lib 中的库,如果仍不能满足一些共享库相关性要求,则转回到 /etc/ld.so.conf 中指定的库。

CentOS升级Python详解相关推荐

  1. python input与返回值-Python 详解基本语法_函数_返回值

    Python 详解基本语法 概要: 函数的返回值是函数重要的组成部分.函数的根本在于实现程序的部分功能,所以很多时候我们需要将函数执行后的结果返回给程序再由程序作出进一步的操作.可以说是函数的返回值令 ...

  2. python选择排序从大到小_经典排序算法和Python详解之(一)选择排序和二元选择排序...

    本文源自微信公众号[Python编程和深度学习]原文链接:经典排序算法和Python详解之(一)选择排序和二元选择排序,欢迎扫码关注鸭! 扫它!扫它!扫它 排序算法是<数据结构与算法>中最 ...

  3. CentOS 开机启动详解

    优化centos开机启动项 2011年06月14日 7:21 /etc/inittab文件,把 代码: id:5:initdefault:这一行,修改成 代码: id:3:initdefault:保存 ...

  4. Linux服务详解(主要基于RedHat系的及Centos默认服务详解)(综合整理)

    转自:http://blog.csdn.net/jj198981/article/details/7605558 acpid ACPI(全称 Advanced Configuration and Po ...

  5. CentOS 6安装详解及PXE 安装

    Linux系统安装详解 注: Tab键 编辑选项  esc键可以返回去 vmlinuz  initrd=initrd.img  后面加 rescue相当于进入救援模式 在 basic video 按e ...

  6. qpython能使用json吗l_[python] 详解Python在使用JSON时需要注意的编码问题

    Python 中的字符编码 在 Python3 中, 字符 在内存中是使用 Unicode 存储的, 常规的字符使用 两个字节 表示, 一些很生僻的字符就需要 四个字节. 默认使用 Unicode 存 ...

  7. map函数的用法python,详解Python map函数及Python map()函数的用法

    python map函数 map()函数 map()是 Python 内置的高阶函数,它接收一个函数 f 和一个 list,并通过把函数 f 依次作用在 list 的每个元素上,得到一个新的 list ...

  8. centos 安装mysql-proxy_详解在Centos 5.2下安装最新Mysql Proxy LUA教程

    在Centos 5.2下安装***Mysql Proxy LUA教程是本文要介绍的内容,主要是来了解Mysql Proxy LUA的安装过程,文章中有很详细的讲解,具体内容来看本文详解. mysql ...

  9. 名片管理系统python详解_详解Python做一个名片管理系统

    详解Python做一个名片管理系统 来源:中文源码网    浏览: 次    日期:2019年11月5日 [下载文档:  详解Python做一个名片管理系统.txt ] (友情提示:右键点上行txt文 ...

最新文章

  1. 百度指数cookie不可用解决方案
  2. kali 解决Metasploit拿到shell后显示中文乱码问题
  3. 聊聊买卖股票的最佳时机
  4. NYOJ 610 定长覆盖
  5. 《Adobe InDesign CS6中文版经典教程》—第2课2.9节应用对象样式
  6. Oracle数据库(三)
  7. Tkinter图片按钮
  8. Java中的泛型全解析(一)
  9. 2022年武汉CMMI3-CMMI5认证企业名录
  10. windows设置tomcat守护进程
  11. Linux文件莫名被删除,【Linux】Linux文件被删除后的恢复方法
  12. 家里蹲大学数学杂志官方网站
  13. 任买分期搞了个“斩男春计划” 我从中看到了消费分期成功的秘诀
  14. vue中reject与provide使用
  15. Transform 3.1:SPSS 的通用数据转换程序
  16. Tomcat的安装与启动
  17. vue - vue的配置文件vue.config.js介绍
  18. 格雷希尔快速连接器GripSeal 密封性测试密封堵头 G15Pro系列使用说明
  19. 语音助手——垂类永动机——自动化迭代框架
  20. AI驱动制药的一种典范模式

热门文章

  1. 做英文期刊编辑的优缺点
  2. C语言与Java变量定义的区别
  3. List遍历中删除元素
  4. 文山计算机网络系统安装,文山智慧教育电脑版
  5. Java小白画图板的重绘包括谢尔宾斯基三角形和蕨类图像的重绘
  6. php微信小程序毕业设计 php家政服务预约小程序毕业设计开题报告功能参考
  7. Python 列表——冒泡排序
  8. js 三元表达式 switch语句
  9. 有什么漫画好看,腾讯动漫APP好看的国产漫画大盘点
  10. IDA反编译学习从入门到放弃