当前位置:   article > 正文

centos7 python3.8安装aiohttp_Python 3.8 离线安装 - Centos 7

离线安装aiohttp

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

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

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

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

Python:3.8.5

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

主要过程如下:

在可联网服务器上,下载 Python 源码,及其所需依赖(Yum 开发依赖及 Python 模块依赖)。

上传至离线服务器上。

安装,编译 Python.

数据准备

在联网服务器上操作:

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

yum install centos-release-scl

安装 yum 依赖下载插件

yum install yum-plugin-downloadonly

下载 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

下载 Python 模块依赖

# 导出使用的依赖

pip freeze > requirements.txt

# 建议在导出后,将 pip,wheel,setuptools 手动写入到 requirements 文件中。

# 下载, -d 为目标文件夹

pip download -d python_modules -r ipsla_requirements.txt

Python 离线安装

在离线服务器上操作:

离线安装 Yum 依赖(需 root)

rpm -Uvh --force --nodeps python_dependencies/*.rpm

启用高版本 GCC(为了在编译时执行 --enable-optimizations, GCC 安装可参见Gcc 安装)

scl enable devtoolset-9 bash

gcc -v

解压 Python 源码

tar -zxf Python-3.8.5.tgz -C /home/user/app/python

配置 make 文件, 指定可执行文件目录:

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

执行编译:

make

执行安装

make install

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

./python3 --version

配置环境变量,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" 找到

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/羊村懒王/article/detail/473740
推荐阅读
相关标签
  

闽ICP备14008679号