• Linux下Python编译安装


    1.安装python3

    1.1下载python源码包

    网址:https://www.python.org/downloads/release/python-362/

    下载地址:https://www.python.org/ftp/python/3.6.2/Python-3.6.2.tgz

    1.1.1安装python前的库环境,非常重要

    yum install gcc patch libffi-devel python-devel  zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel -y

    1.2下载,解压安装源码包

    1、configure

    这一步一般用来生成 Makefile,为下一步的编译做准备,你可以通过在 configure 后加上参数来对安装进行控制,比如代码:

    ./configure --prefix=/usr

    上面的意思是将该软件安装在 /usr 下面,执行文件就会安装在 /usr/bin (而不是默认的 /usr/local/bin),资源文件就会安装在 /usr/share(而不是默认的/usr/local/share)。

    同时一些软件的配置文件你可以通过指定 --sys-config= 参数进行设定。有一些软件还可以加上 --with、--enable、--without、--disable 等等参数对编译加以控制,你可以通过允许 ./configure --help 察看详细的说明帮助。

    2、make

    这一步就是编译,大多数的源代码包都经过这一步进行编译(当然有些perl或python编写的软件需要调用perl或python来进行编译)。

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

    make 的作用是开始进行源代码编译,以及一些功能的提供,这些功能由他的 Makefile 设置文件提供相关的功能,比如 make install 一般表示进行安装,make uninstall 是卸载,不加参数就是默认的进行源代码编译。

    make 是 Linux 开发套件里面自动化编译的一个控制程序,他通过借助 Makefile 里面编写的编译规范进行自动化的调用 gcc 、ld 以及运行某些需要的程序进行编译的程序。一般情况下,他所使用的 Makefile 控制代码,由 configure 这个设置脚本根据给定的参数和系统环境生成。

    3、make install

    这条命令来进行安装(当然有些软件需要先运行 make check 或 make test来进行一些测试),这一步一般需要你有 root 权限(因为要向系统写入文件)

    
    

    安装python3具体步骤:

    1.下载python3源码,选择3.6.7因为ipython依赖于>3.6的python环境


    下载在/opt/文件夹下面
    wget https://www.python.org/ftp/python/3.6.7/Python-3.6.7.tar.xz


    2.解压缩源码包,去除xz后缀
    xz -d Python-3.6.7.tar.xz


    3.解压缩源码包,去除.tar后缀
    tar -xf Python-3.6.7.tar
    4.解决编译安装python3所需的软件依赖 ******** 很重要

      备注:解决这些依赖关系后期才能正常运转python3.6,
      如果不解决,会出现各种报错信息,此时还得重新编译python3.6

      看上面安装链接

    5.开始进行编译安装
    分为三部曲
    1.调用源码包路径底下的configure这个脚本文件
      ./configure --prefix=/opt/python36/
      指定软件安装的位置/opt/python36 下面

    2.执行make指令,开始编译 (此步骤还不会生成/opt/python36这个文件夹)
      #这个编译是个什么鬼?
      -翻译 python解释器是对代码进行一行一行的翻译,并且转化成机器码去执行
      print('hello world ')
      
      python 脚本.py

      -编译 ,编译型的语言,在运行代码之前,有一个编译的过程,(将代码,编译转化成一个二进制文件)
      - c
      - c++
      - java
      - golang
      main.go
      fmt.Println('hello world')

      go run main.go


      go build main.go #编译生成一个可执行命令
      -在window底下 生成一个 main.exe
      - main




      3. make install 安装软件 (此步才是安装软件的过程)
        -才会生成一个 /opt/python36这个软件安装路径
        make install

    6.编译安装ok,没有报错后,就可以正常使用python3了
    7.快捷使用python3.6的方式
      以下配置方式,二选一,请你选path配置

      1.软连接(这一步很麻烦,并且不适用于virtualenv的创建)
        ln -s /opt/python36/bin/python3.6 /usr/bin/python3 #但是这一步还没有pip
        ln -s /opt/python36/bin/pip3 /usr/bin/pip3

      2.环境变量的配置
        1.echo $PATH
      /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
      2.配置python36的目录,加入环境变量
        强调!!!
        强调!!!
        强调!!!
        因为path的路径查找是有优先级顺序的!!!

        并且在配置virtualenv的时候,优先以先找到的python环境为base环境

        #请将python36的目录放到path的第一层
        /opt/python36/bin/:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:

      3.配置环境变量,永久生效,写入到文件/etc/profile中,每次登录就生效

        vim /etc/profile #将此配置写到最低行
        PATH=/opt/python36/bin/:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

        source /etc/profile #读取这个文件,让python3生效

    8.此时可以正确使用python3啦!

     
    复制代码
    #yum install gcc -y
    .
    /configure --prefix=/opt/python make && make install
    ---------------------
    用python查看默认安装路径
    >>> import sys
    >>> sys.path
    ['', '/usr/local/lib/python36.zip', '/usr/local/lib/python3.6',
    '/usr/local/lib/python3.6/lib-dynload', '/usr/local/lib/python3.6/site-packages']
    --------------------
    python3.4默认没添加path
    在/etc/profile最后一行添加
    export PATH=$PATH:/opt/python/bin
    然后
    source /etc/profile

    #python快捷path就被改了,yum用的python2,麻烦
    复制代码

    1.2.3 牛逼的python Tab自动补全

    下载setuptool 3.4以上已经默认安装了easy_install-3.4

    下载地址:
    https://pypi.python.org/pypi/setuptools/36.2.7
    下载命令:
    wget https://pypi.python.org/packages/07/a0/11d3d76df54b9701c0f7bf23ea9b00c61c5e14eb7962bb29aed866a5844e/setuptools-36.2.7.zip#md5=b9e6c049617bac0f9e908a41ab4a29ac
    解压:
    unzip setuptools-36.2.7.zip
    编译:
    python3 setup.py build
    python2 setup.py build
    无误后安装:
    python3 setup.py install
    python2 setup.py install
    没什么用

    下载readline

    #yum install -y readline-devel -y 
    #pip install readline
     
    tab补全
    #python startup file
    import readline,rlcompleter
    #tab completion
    readline.parse_and_bind('tab:complete')
    ----------------------------
    python历史记录
    #history file
    import os
    history_file = os.path.join(os.environ["HOME"],".pythonhistory")
     
    [root@mm_local ~]# echo "export PYTHONSTARTUP='/root/.pythonstartup'" >> /root/.bashrc   
    [root@mm_local ~]# source /root/.bashrc  
    [root@mm_local ~]# cat /root/.pythonstartup   
    import os  
    import readline  
    import rlcompleter  
    import atexit  
      
      
    #tab completion  
    readline.parse_and_bind("tab: complete")  
      
      
    #history file  
    history_file = os.path.join(os.environ["HOME"],".pythonhistory")  
    try:  
        readline.read_history_file(history_file)  
    except IOError:  
        pass  
    atexit.register(readline.write_history_file,history_file)  
      
      
    del os,history_file,readline,rlcompleter  
    [root@mm_local ~]# python  
    Python 2.7.3 (default, Jun  5 2013, 22:40:26)   
    [GCC 4.4.6 20110731 (Red Hat 4.4.6-3)] on linux2  
    Type "help", "copyright", "credits" or "license" for more information.  
    >>> import sys  
    >>> sys.path<tab> #按tab键就可以自动补全了  
      
    [root@mm_local ~]# python  
    >>>  
    >>> sys.path #按上下方向键即可找到历史命令 
    整体代码

     加入python的启动环境变量,永久生效自动补全

     
    只需要启动时执行一条命令即可
    
    import rlcompleter, readline
    readline.parse_and_bind('tab:complete')
    可以将上述的代码存于~/.pythonrc.py文件中。
    
    然后,在~/.bashrc中设置
    
    export PYTHONSTARTUP=~/.pythonrc.py
    这样,每次启动终端,bash就会设置PYTHONSTARTUP这个环境变量,然后,python启动时就会使用这个变量指定的文件中的初始化代码。
    
    在python解释器中,输入一个变量的一部分,或者变量后面加句点,再按TAB键就可以看到自动补全的威力。
     
  • 相关阅读:
    11-8 Eureka Server整合SpringSecurity解决安全问题
    11-7 Eureka Server安全问题介绍
    11-6 CORS跨域资源共享解决
    11-5 JWT验证演示
    11-4 JWT验证开发演示
    11-3 JWT颁发流程讲解
    11-2 JWT介绍
    11-1 服务安全章节介绍
    10-15 Zuul知识点梳理
    10-14 Zuul与Meetingfilm整合
  • 原文地址:https://www.cnblogs.com/caodneg7/p/10057640.html
Copyright © 2020-2023  润新知