Linux下大部分系统默认自带python2.x的版本,最常见的是python2.6或python2.7版本,默认的python被系统很多程序所依赖,比如centos下的yum就是python2写的,所以默认版本不要轻易删除,否则会有一些问题,如果需要使用最新的Python3那么我们可以编译安装源码包到独立目录,这和系统默认环境之间是没有任何影响的,python3和python2两个环境并存即可  首先去python官网下载python3的源码包,网址:https://www.python.org/  进去之后点击导航栏的Downloads,也可以鼠标放到Downloads上弹出菜单选择Source code,表示源码包,这里选择最新版本3.5.1,当然下面也有很多其他历史版本,点进去之后页面下方可以看到下载链接,包括源码包、Mac OSX安装包、Windows安装包    这里选择第一个下载即可,下载的就是源码包:Python-3.5.1.tgz,下载好之后上传到linux系统,准备安装  python安装之前需要一些必要的模块,比如openssl,readline等,如果没有这些模块后来使用会出现一些问题,比如没有openssl则不支持ssl相关的功能,并且pip3在安装模块的时候会直接报错;没有readline则python交互式界面删除键和方向键都无法正常使用,至于需要什么模块在make完之后python会给出提示,通过提示进行安装即可装全, 另外感谢园友的Glory_Lion的回复;下面是需要提前预装的依赖:复制代码yum -y install zlib zlib-develyum -y install bzip2 bzip2-develyum -y install ncurses ncurses-develyum -y install readline readline-develyum -y install openssl openssl-develyum -y install openssl-staticyum -y install xz lzma xz-develyum -y install sqlite sqlite-develyum -y install gdbm gdbm-develyum -y install tk tk-devel复制代码 安装上面这些python内置模块基本上就比较全了,如果后续有其他必要的模块,会继续补充的,接下来可以安装python了,编译过程中会自动包含这些依赖.

释放文件:tar -xvzf Python-3.5.1.tgz  进入目录:cd Python-3.5.1/  配置安装目录,因为上面依赖包是用yum安装而不是自己编译的,所以都是安装在系统默认目录下,因此各种选项不用加默认即可生效:./configure --prefix=/usr/python  接下来编译源码:make  执行安装:make install  整个过程大约5-10分钟,安装成功之后,安装目录就在/usr/python  系统中原来的python在/usr/bin/python,通过ls -l可以看到,python是一个软链接,链接到本目录下的python2.7  我们可以不用把这个删除,不对原来默认的环境做任何修改,只新建一个python3的软链接即可,只是需要执行python3代码时python要改成python3,或者python脚本头部解释器要改为#!/usr/bin/python3  这里建立有关的软链接如下:ln -s /usr/python/bin/python3 /usr/bin/python3ln -s /usr/python/bin/pip3 /usr/bin/pip3  这样就建立好了,以后直接执行python3命令就可以调用python3了,执行pip3可以安装需要的python3模块;另外如果仔细看python安装目录下的bin目录,实际上python3也是个软链接,链接到python3.5.1,这样多次链接也是为了多个版本的管理更加方便,  python3新版本的安装就是这些,因为我们之前安装了完整的依赖,所以下面问题不存在了,忽略即可,其中的python readline模块也早已经停止更新了,会出现崩溃问题;这里基础环境都是使用系统的依赖,更稳定. --------------------------------------------华丽的分割线---------------------------------------------------

另外可能会遇到一个问题就是,python3交互式界面特别不好用,删除不能正常使用,必须按Ctrl+删除键才可以,上下键重复命令也无法使用,左右调整光标也无法使用,这样调试代码效率很低,原因是python3缺少readline这个依赖,默认使用pip3 install readline会提示找不到包,所以只能是手动安装了  因为readline依赖于ncurses库,如果没有这个库,编译readline的时候会提示can not find -lncurses,如果在centos环境下可以执行下面命令安装:yum -y install ncurses ncurses-devel  安装ncurses库之后,再安装readline,readline可以在pypi下载,地址:https://pypi.python.org/pypi/readline,这里一定要下载源码包,其余的只能用于python2,下载之后执行下面命令安装:tar -xvzf readline-6.2.4.1.tar.gzcd readline-6.2.4.1/python3 setup.py install  这样执行完毕就为python3安装了readline,然后再进入交互式界面所有的操作都好用了

linux下c使用lzma_linux 编译lzma相关推荐

  1. Linux下boost库的编译、安装详解

    1.下载源文件 去官网下载:http://www.boost.org/ 这里下载最新版本 wget https://dl.bintray.com/boostorg/release/1.64.0/sou ...

  2. Linux下C/C++程序编译链接加载过程中的常见问题及解决方法

    Linux下C/C++程序编译链接加载过程中的常见问题及解决方法 1 头文件包含的问题 报错信息 该错误通常发生在编译时,常见报错信息如下: run.cpp:2:10: fatal error: dl ...

  3. linux下c使用lzma_linux lzma软件包下载 ...lzma-sdk.updatestar.com/

    如何让 linux yum 安装已有的软件包? linux yum 安装已有的软件包方法:1. 下载软件的安装包. 2. 然后在命令行(CTRL+ALT+F1)输入以下代码:yum update -y ...

  4. c 运行 java linux命令行参数,Linux下用命令行编译运行Java总结

    最近使用腾讯云的Cloud Studio写Java,只能使用命令行进行编译运行,趁此机会,学习一下Linux的一些常用命令.平时windows下IDE用习惯了,现在用命令行进行编译运行,发现其实问题还 ...

  5. linux下g编译文件或目录,【转】在linux下使用gcc/g++编译多个.h文件

    博主写得很好 多个文件编译在linux下编译,下面有三个文件,分别是1.cpp 和 2.cpp 和myhead.h 文件. 1.cpp 2.cpp myhead.h 假如他们都在一个目录下面,那么编译 ...

  6. Linux下通过源码编译安装程序

    本文简单的记录了下,在Linux下如何通过源码安装程序,以及相关的知识. 一.程序的组成部分 Linux下程序大都是由以下几部分组成: 二进制文件:也就是可以运行的程序文件 库文件:就是通常我们见到的 ...

  7. Linux下qwt源码编译,QWT的编译与配置

    QWT,全称是Qt Widgets for Technical Applications,是一个基于LGPL版权协议的开源项目, 可生成各种统计图.它为具有技术专业背景的程序提供GUI组件和一组实用类 ...

  8. linux下darknet指定opencv4编译安装

    介绍 使用的是opencv4.4,具体我安装在了自己的目录下/home/cxzx/opencv44,如下,具体安装方法可以参考:linux下安装opencv4.4.0 cxzx@ubuntu:~/op ...

  9. linux emule 编译 wx-config --libs,Linux下的wxWidgets静态编译实现方法

    --Linux distribution:Ubuntu 10.04.3 LTS (Lucid Lynx) --wxWidgets version:2.8.12 --gcc version:4.4.3 ...

最新文章

  1. TiDB DevCon 2019 报名开启:年度最高规格的 TiDB 技术大会
  2. join,和循环删除,fromkeys,集合,拷贝
  3. HTML表格,table,thead,tbody,tfoot,th,tr,td,的属性以及跨行,跨列
  4. JavaScript基础笔记
  5. MS SQL 2000 分配权限
  6. [剑指offer]面试题第[3]题[JAVA][从尾到头打印链表][栈]
  7. 利用PCF8591进行AD转换
  8. python除了爬虫还可以干什么_python爬虫能够干什么
  9. STM32工作笔记0076---UCOSIII任务基础API_任务创建和删除
  10. linux 修改文件夹权限_Linux文件权限 - Understanding Linux File Permissions
  11. postman下载文件
  12. 计算机网络基础试题库4答案,计算机网络基础试题库4.doc
  13. 计算机二级java刷题_计算机二级等考 刷题时间安排以及刷题顺序分享
  14. HTMLCSS仿京东注册页面制作静态页面总结
  15. Oracle 分页查询方法和效率分析
  16. Office更新了那么多代,哪个版本好看呢?
  17. (13.1.1)PMBOK之一:运营,项目、项目集、项目组合、组织战略及其管理
  18. UVA10306 - e-Coins(二维完全背包)
  19. if(!ispostback)其用法和作用 什么时候该用?
  20. 用好WordPress不可不知的函数(转)

热门文章

  1. 直播视频流+html,前端页面播放 rtmp 流与 flv 格式视频文件
  2. 如何快速不借用转换工具将FLV格式视频转换成MP4
  3. python模拟上传图片_用python创建自己的等离子图片模拟
  4. python程序设计,猜数游戏编程实践课程实验
  5. Python一键清空购物车
  6. SAP 领料BAPI BAPI_GOODSMVT_CREATE 提示 短缺未限制使用的SL
  7. shell入门之expr的使用
  8. 什么是数据库?数据库有什么作用?
  9. linux命令前期记不住,linux前期 - 浪里小白龙l的个人空间 - OSCHINA - 中文开源技术交流社区...
  10. 数字化转型 — 新能源汽车 — 生产制造流程 — 总装车间