• Python 3.8 离线安装


    由于客户环境断网且提供非 Root 权限用户,只能从头开始采用源码方式进行安装。而源码方式自然免不了对各种开发工具的依赖,好在对于 Yum 来说,提供一个了插件可以需要的依赖全部下载下来,在离线机器直接采用离线方式即可,免去了手动调整各种依赖的麻烦。

    对于 Python 需要的依赖的包来说,本身 pip 也提供了类似 Yum 离线下载的工具,需要直接导入即可。

    Linux 服务器发行版为:Centos7.6

    内核版本为:Linux 3.10.0-957.el7.x86_64

    Python:3.8.5

    在选择可联网环境的机器时,建议选择相同版本的服务器。

    主要过程如下:

    1. 在可联网服务器上,下载 Python 源码,及其所需依赖(Yum 开发依赖及 Python 模块依赖)。
    2. 上传至离线服务器上。
    3. 安装,编译 Python.

    数据准备

    在联网服务器上操作:

    1. 安装 centos-release-scl 第三方yum源

      yum install centos-release-scl
      
    2. 安装 yum 依赖下载插件

      yum install yum-plugin-downloadonly
      
    3. 下载 Python 及 Yum 依赖

      # 下载 python 源码
      wget https://www.python.org/ftp/python/3.8.5/Python-3.8.5.tgz
      
      # 下载依赖, python_dependencies 为保存的目标文件夹
      yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel libffi-devel --downloadonly --downloaddir=python_dependencies
      
    4. 下载 Python 模块依赖

      # 导出使用的依赖
      pip freeze > requirements.txt
      
      # 建议在导出后,将 pip,wheel,setuptools 手动写入到 requirements 文件中。
      
      # 下载, -d 为目标文件夹
      pip download -d python_modules -r ipsla_requirements.txt
      

    Python 离线安装

    在离线服务器上操作:

    1. 离线安装 Yum 依赖(需 root)

      rpm -Uvh --force --nodeps python_dependencies/*.rpm
      
    2. 启用高版本 GCC(为了在编译时执行 --enable-optimizations, GCC 安装可参见 Gcc 安装

      scl enable devtoolset-9 bash
      gcc -v
      
    3. 解压 Python 源码

      tar -zxf Python-3.8.5.tgz -C /home/user/app/python
      
    4. 配置 make 文件, 指定可执行文件目录:

      configure prefix=/home/user/app/python3 --enable-optimizations

    5. 执行编译:

      make

    6. 执行安装

      make install

    7. 进入到 /home/user/app/python3/bin 目录下,执行 python3 看是否成功

      ./python3 --version

    8. 配置环境变量,source 后生效:

      vim ~/.bash_profile
      export PYTHON3_PATH=/home/ipsla/app/python3
      export PATH=$PYTHON3_PATH/bin:$PATH
      

    Python 依赖模块安装

    由于离线 Python3.8 自带的 pip 等版本可能与联网服务器模块版本不一致,为了规避依赖版本问题,先对其版本进行更新:

    ipsla_packages 为下载后的 Python 模块依赖目录。

    /home/ipsla/user/python3/bin/pip3.8 --upgrade ipsla_packages/pip-20.2.3-py2.py3-none-any.whl
    
    /home/ipsla/user/python3/bin/pip3.8 --upgrade ipsla_packages/wheel-0.35.1-py2.py3-none-any.whl
    
    /home/ipsla/user/python3/bin/pip3.8 --upgrade ipsla_packages/setuptools-50.3.0-py3-none-any.whl
    

    安装需要的依赖:

    # 根据 requirements 文件安装
    /home/user/app/python3/bin/pip3.8 install --no-index --find-links=ipsla_packages -r ipsla_packages/requirements.txt
    
    # 手动指定安装
    /home/user/app/python3/bin/pip3.8 install --no-index --find-links=ipsla_packages/ aiohttp==3.5.4
    

    通常都会搭配 MySQL 等数据库,如果数据库也是离线安装的话,需要调整一下链接文件:

    ln -s /home/user/mysql/lib/libmysqlclient.so.20 /usr/lib64/libmysqlclient.so.20
    
    # libmysqlclient 可通过 find /home/user -name "libmysqlclient" 找到
    
  • 相关阅读:
    还是行列转换
    SQL实现交叉表的方法
    silverlight绘制场景的教程,讲解清晰,谁都能看懂
    简单的MEF例子
    在arcgis上根据区域显示小区
    一个不错的silverlight颜色选取框控件
    mac下制作iphone铃声
    xCode中工程相关的一些处理:一个工程包含多个Target的用途和使用方法【转】
    git 分支管理
    [转]判断ios中是否安装了某些软件
  • 原文地址:https://www.cnblogs.com/michael9/p/14348401.html
Copyright © 2020-2023  润新知