• 【Linux】CentOS6上安装Python3.7(config、make、make install)及“No module named '_ctypes'”/pip install时“ssl module in Python is not available.”的解决


    1.下载安装包

    https://www.python.org/ftp/python/ 该目录下选择所需要的版本进行下载、解压。

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

     tar -xzvf Python-3.7.1.tgz 

    2.二进制文件安装

      1.创建存放目录

     mkdir /usr/local/python3  

      2.运行脚本configure

    config是一个shell脚本,根据平台的特性生成Makefile文件,为下一步的编译做准备。

    可以通过在 configure 后加上参数来对安装进行控制,比如下面就是指定安装目录/usr/local/python3。

    如果没有用这个选项,安装过程结束后,该软件所需的软件被复制到不同的系统目录下,比较混乱。
     cd Python-3.7.1 

     ./configure --prefix=/usr/local/python3 --with-ssl 

    ./configure --enable-optimizations --prefix=/usr/local/python3

    可以通过 ./configure --help 查看详细的说明帮助。

      3.make编译make install安装 

    ※如果有需要,会进行 make depend(一种makefile的规则,通过扫描一个目录下的所有CC++ 代码,从而判断出文件之间的依赖关系,如a.cc文件中调用了b.h(如以形势include<b.h>),如果之后a.cc文件被改动,那么只需要重新编译a.cc文件,不需要编译b.h文件。否则所有的文件都需要重新编译)

    从Makefile中读取指令,根据makefile制定的规则,将cc++文件编译成*.o文件,然后进一步生成可执行文件。大多数的源代码包都经过这一步进行编译,(当然有些perl或python编写的软件需要调用perl或python来进行编译)。

     make && make altinstall 

    如果 在make过程中出现 error ,你就要记下错误代码(注意不仅仅是最后一行),然后你可以向开发者提交 bugreport(一般在 INSTALL 里有提交地址),或者你的系统少了一些依赖库等,这些需要自己仔细研究错误代码。

      4.最后运行make clean

    删除一些临时文件(删除源代码(CC++ code)生成的执行文件和所有的中间目标文件)

    3.创建软连接

     1 ln -s /usr/local/python3/bin/python3 /usr/bin/python3 2 ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3 

    最后运行python3查看是否安装成功

    4.总结安装过程

    绝大数开源软件都是公布源代码的,源代码一般被打包为tar.gz归档压缩文件,然后手工编译为二进制可执行文件

    1. ./configure  检查编译环境/相关库文件/配置参数,生成makefile
    2. make      对源代码进行编译,生成可执行文件
    3. make install    将生成的可执行文件安装到当前计算机中特点;

    兼容性好/可控制性好/开源软件会大量使用其他开源软件的功能,要解决大量的依赖关系

    5.安装时报错ModuleNotFoundError: No module named '_ctypes'的解决办法

      yum install libffi-devel 

    然后从config开始重新安装

    6.pip3 install时报错“pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.”

    先安装openssl-dev,然后重新编译安装,只是在编译的过程中加入 --enable-optimizations

  • 相关阅读:
    大叔程序员的第六天 @布局&eclipse配置文件
    20130305Android自定义Button按钮显示样式
    solr学习(1)
    Lucence3.0学习(1)
    Liskov Substitution Principle (LSP) OO设计的里氏替换原则
    对于高内聚低耦合的理解
    ASP.NET 网站中的共享代码文件夹
    二探String类型
    初探String类型
    版本控制初探1
  • 原文地址:https://www.cnblogs.com/momolei/p/9895218.html
Copyright © 2020-2023  润新知