zoukankan      html  css  js  c++  java
  • linux下python3源码安装及卸载

    Linux下Python3的源码编译安装和卸载方法

    [日期:2019-06-21] 来源:博客园  作者:wuli潇萧 [字体: ]
     
     

    (一)Linux下软件的源码编译安装和卸载方法

    Linux下正常的编译安装/卸载

    源码的安装一般由3个步骤组成:

    • 配置(configure)
    • 编译(make)          #编译产生的所有文件仅仅在当前目录下,可以查看MakeFile文件查看编译内容            
    • 安装(make install)。    #执行MakeFile的INSTALL方法

    configure文件是一个可执行的脚本文件,它有很多选项,在待安装的源码目录下使用命令./configure –help可以输出详细的选项列表。

    其中--prefix选项是配置安装目录,如果不配置该选项,安装后可执行文件默认放在/usr /local/bin,库文件默认放在/usr/local/lib,配置文件默认放在/usr/local/etc,其它的资源文件放在/usr /local/share,比较凌乱。

    如果配置了--prefix,如:

    $ ./configure --prefix=/usr/local/linuxidctest

    安装后的所有资源文件都会被放在/usr/local/linuxidctest目录中,不会分散到其他目录。

    使用--prefix选项的另一个好处是方便卸载软件或移植软件

    • 当某个安装的软件不再需要时,只须简单的删除该安装目录,就可以把软件卸载干净;
    • 移植软件只需拷贝整个目录到另外一个机器即可(相同的操作系统下)

    当然要卸载程序,也可以在原来的make目录下用一次make uninstall,但前提是Makefile文件有uninstall命令。

    make install PREFIX=path

    这里PREFIX必须大写,其实绝大部分情况下 make install 都不能再指定 PREFIX 了,因为大部分程序都会 configure 时得到的 prefix 写入 config.h,然后在编译时编译到可执行文件内部,以便在执行时读取资源文件等。

    这样在编译完毕后,就不能再修改 prefix 了。只有运行时不需要资源文件的小工具,才可能在安装的时候随意选择 PREFIX,或者具有 loader 的大程序,在执行时通过 loader 传入路径……

    关于卸载

    如果安装的时候指定了--prefix,直接删除就好。如果没有配置--prefix选项,,并且源代码没有提供make uninstall/distclean/veryclean的功能,则可以通过以下方式可以完整卸载:

    找一个临时目录重新安装一遍,如:

    $ ./configure --prefix=/tmp/to_remove 
    $ make && 'make install >&1|tee make.log'

    然后遍历/tmp/to_remove的文件,删除对应安装位置的文件即可(因为/tmp/to_remove里的目录结构就是没有配置--prefix选项时的目录结构)。

    这样的坏处是有些文件夹还可能删除不了(分不清是系统的还是安装上的)
     
    常见的反安装target有: make uninstall/distclean/veryclean 等等。如果没有,事先记得记录'make install'的所有输出日志,'make install &> |tee make.log'。
     
    然后在日志里能够看得到到底安装了那些文件到那些位置,通常会使用'cp'或者'install'命令拷贝文件。

    (二)debian 8 jessie安装Python3.6

     debian 系统debian8官方停止更新维护了,目前apt源仅支持python3.4,debian8系统内置的python2为python2.7.9,Python3版本为3.42。

     想要安装Python3.5及以上的版本,只能下载源码编译安装,但是千万不要手欠的去删除系统自带python3.4,

     否则后果请参考

          https://blog.csdn.net/lang523493505/article/details/76644666

    需要安装更高版本的python,例如python3.6 这样做
     
          参考链接 https://unix.stackexchange.com/questions/332641/how-to-install-python-3-6

    =================================================
    pip3依赖系统内置的openssl包,先确定apt-get install openssl

    You can install Python-3.6 on Debian 8 as follows:

    wget https://www.python.org/ftp/python/3.6.8/Python-3.6.8.tgz
    tar xvf Python-3.6.8.tgz
    cd Python-3.6.8
    ./configure --enable-optimizations
    make 
    make altinstall 或者make install(试过成功了)
    python3.6 -V
    #创建软链接,软链接目的目录已存在的先删除
    ln -s /usr/local/bin/python3.6 /usr/bin/python3
    ln -s /usr/local/bin/pip3.6 /usr/bin/pip3

    pip3 install redis (试过成功了)

    (三)Linux下安装python3后,pip3 install 报错找不到ssl模块

    Python3 越来越火,要在Linux下安装python3的需求也越来越多。。

    官网 python.org 下载压缩包,解压


    然后,在./configure的时候,需要加上  --enable-optimizations参数,这样才能启用很多功能。

    网上看到很多人说要用 ./configure --with-ssl,这是没用的,日志上写明白了 not recognized option '--with-ssl'。

    编译的时候日志跑的很快,很多人就忽略了细节,年轻人,不要慌,回去翻翻日志,你会有新发现,很多东西别人都给了提示的了。

    接下来官方步骤

    make && make install

    重新试试

    python3> import ssl

    有了。

    另外在编译安装git等工具时,都把 --enable-optimizations 参数带上,这样才是以“官方发布的稳定版本”编译。

    参考链接:

    https://blog.csdn.net/Pretendness/article/details/80032016

    https://www.linuxidc.com/Linux/2019-03/157703.htm

    https://www.zhihu.com/question/20092756/answer/13948057

  • 相关阅读:
    go 字符串拼接
    go中字符串的切片和索引使用
    golang 日志输出到指定位置代码
    go命令手动加载所有的安装包
    gin框架入门前后端gin-admin开源项目学习
    go container/list双向链使用实例
    使用 container/list 包 手写实现一个双向链表,将 101、102 和 103 放入其中并打印出来
    Hibernate基础增删改查语法
    Eclipse集成Hibernate操作Sqlserver实例
    sqlserver存储过程批量插入数据
  • 原文地址:https://www.cnblogs.com/yy-cxd/p/11063887.html
Copyright © 2011-2022 走看看