linux下c使用lzma_linux 编译lzma

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

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,然后再进入交互式界面所有的操作都好用了

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/221664.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月17日 下午5:34
下一篇 2026年3月17日 下午5:34


相关推荐

  • 由于Redis后门漏洞导致服务器被注入挖矿脚本解决过程

    由于Redis后门漏洞导致服务器被注入挖矿脚本解决过程由于Redis后门漏洞导致服务器被注入挖矿脚本解决过程事件描述某一天的早晨,我还是像往常一样搭着公交车开启打工仔的一天,一早8.30就到办公室了,坐着玩手机等上班,就这这时突然我组长飞快的回来办公室,回来就说快看看阿里云后台服务,服务是不是挂掉了,我当时就纳闷了一大早的流量不大怎么就宕机了呢,不一会我组长收到了阿里云短信通知监测到恶意脚本,接下来就是脚本的查找前期处理首先是通过阿里云的控制台发现,查看到恶意的进程PID,通过ps-ef|greap5724的确看到了当前进程,前期处理我只

    2022年7月14日
    20
  • java uniqueresult_关于query.uniqueResult报错问题

    java uniqueresult_关于query.uniqueResult报错问题publicfloatcountmonthmoney(Longblogid){java.text.SimpleDateFormatsf=newjava.text.SimpleDateFormat(“yyyyMM”);Stringtoday=sf.format(newjava.util.Date());StringBuilderstring…publicfloatcountmonthmone…

    2022年9月30日
    5
  • macbookpro找不到麦克风_双系统win7无法启动

    macbookpro找不到麦克风_双系统win7无法启动问题描述通过系统提供的启动转换助理装了win10之后,发现siri提示找不到麦克风,偏好设置中也看不到输入设备解决方案终端执行以下命令后,输入密码即可.无需重启.sudokillallcoreaudiod…

    2022年10月5日
    6
  • 微信小程序中globalData的设置与读写

    微信小程序中globalData的设置与读写不得不吐槽小程序的关于 Storage 的坑实在是多 最终只能放弃 其实我要做的事情也很简单 就是要在小程序的每个页面中调取一些统一的信息 后再找到了在 App js 里有一个 GlobalData 的功能 看名字就知道很好使 初始化 GlobalData 在 App js 的最上方可以设置 GlobalData 的初始值 App globalData appid 1wqas2342das

    2026年3月19日
    3
  • UART和USART有区别

    UART和USART有区别UART  UART是一种通用串行数据总线,用于异步通信。该总线双向通信,可以实现全双工传输和接收。在嵌入式设计中,UART用于主机与辅助设备通信,如汽车音响与外接AP之间的通信,与PC机通信包括与监控调试器和其它器件,如EEPROM通信。  UART的功能计算机内部采用并行数据,不能直接把数据发到Modem,必须经过UART整理才能进行异步传输,其过程为:CPU先把准备写入串行设备的数据…

    2022年5月19日
    40
  • MySQL 对于千万级的大表要怎么优化?

    MySQL 对于千万级的大表要怎么优化?

    2021年10月15日
    36

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号