python 下载离线包以及安装

一、安装离线包

这里去搜你想要的包:
https://pypi.org/

之后安装:

pip install package.xxx.whl

或者直接下载下来,然后通过命令安装:

file

pip install package.xxxx.tar.gz

二、问题排查

error: command 'gcc' failed with exit status 1

其实只要看include缺什么就行了,我缺的时Python.h,所以就安装以下python的devel环境就好

yum install python-devel
Install python3-devel rpm package:

# yum install python3-devel
移除之前的包yum -y remove
下载 yum -y install nmap --downloadonly --downloaddir /opt/temp
安装 rpm –ivh 包名 --force --nodeps

Linux包库:
https://pkgs.org/download/python2-devel

三、下载离线包

在实际生产中,往往开发环境在内网,需要安装 Python 包的时候,比较麻烦,需要先在联网环境下在,然后导入内网环境进行安装。

1.下载(联网环境)

1.1 切换python版本

# 查看conda环境
conda env list

# 切换 python2 环境
activate python2

file

1.2 下载

# 下载单个离线 python 包
pip download -d offline_packages <package_name>
# 批量下载离线包
pip download -d offline_packages -r requirements.txt

# 示例下载pytest的离线包:
pip download -d pytest_packages pytest

file

file

2.导入内网安装

# 把离线下载的安装包,导入内网进行安装:
# 安装单个离线包
pip install --no-index --find-links=/offline_packages/ package_name
# 批量安装离线包
pip install --no-index --find-links=/offline_packages/ -r requirements.txt

三、实战

1、下载oss2离线包

mkdir offline_packages
cd offline_packages

# ①、创建依赖文件
vi oss2_requirements.txt

# oss2==2.17.0(单独下载)
aliyun-python-sdk-core==2.15.0
aliyun-python-sdk-kms==2.16.2
jmespath==0.10.0
crcmod==1.7

#  ②、下载oss2 离线包
pip download --dest oss2_packages oss2==2.17.0

# 批量下载其他依赖离线包
pip download -d other_packages -r  oss2_requirements.txt

# 压缩命令
tar -czf oss2_offline_packages.tar.gz offline_packages

# 测试安装
# 安装 oss2 离线包
pip install --no-index --find-links=oss2_packages oss2==2.17.0

# 安装其他依赖
pip install --no-index --find-links=other_packages -r oss2_requirements.txt

2、构建镜像

dockerfile 文件

# 基于公司基础镜像 py-java 来构建新的镜像
FROM base_image:v1

LABEL maintainer="bit@tradingbit.cn"
LABEL version="1.0"
LABEL description="Add oss2 dependencies by py-java image "
LABEL build_date="2024/08/31"

ARG USER=master
USER ${USER}

# 查看容器 /home/master 目录下的文件
# RUN ls -l /home/master

# 拷贝离线包到容器目录
COPY --chown=65500:65500 offline_packages /home/${USER}/
COPY --chown=65500:65500 offline_packages/oss2_requirements.txt /home/${USER}/

# 再次查看是否拷贝进容器/home/master 目录下
# RUN ls -l /home/master

# 安装 oss2 离线包及依赖
RUN pip install --no-index --find-links=/home/${USER}/oss2_packages oss2==2.17.0 \
    && pip install --no-index --find-links=/home/${USER}/other_packages -r /home/${USER}/oss2_requirements.txt

# 构建镜像
# docker  build --network host  -t bit-harbor.tradingbit.com/library/py_java:0.1.1c_37 -f dockerjava-pyfile_bash3.7 .

构建镜像命令:

docker  build --no-cache --network host  -t bit-harbor.tradingbit.com/library/py_java:0.1.1c_37 -f dockerjava-pyfile_bash3.7 .

相关文章:
python下载离线包
解决"command 'gcc' failed with exit status 1"错误问题
rpm离线安装整理

为者常成,行者常至