pip离线环境安装包
- pip离线环境安装包
- 基础环境
- Windows安装docker
- docker中配置centos 6.9
- docker与windows配置共享文件夹
- pip离线安装评package
- 参考
- 虚拟环境离线迁移
pip离线环境安装包
服务器没有镜像的情况下,offline机器安装python的包。
背景:
- 有一台可以联网的windows电脑
- 有一台无法联网的linux服务器
- 想在linux中安装python包及其依赖
查阅网上的资源,说最方便的路线就是:windows中安装docker镜像,配置与linux相同的环境,通过pip download pkg
下载包及其依赖,最后拷贝到linux中安装。
基础环境
- windows10电脑
- 下载安装docker
- docker内安装minianaconda
- python 3.7
- linux服务器
- centos6.9
- anaconda
- python 3.7
两个系统创建相同的虚拟环境!以免出现一些依赖错误
Windows安装docker
下载docker-desktop,一步步默认安装就行了
docker中配置centos 6.9
打开windows power shell,运行下面的命令
这里给docker环境配置centos6.9
- 拉取镜像
> docker pull centos:6.9
- 查看镜像
> docker images
- 查看容器
> docker ps -a
- 创建并运行容器
> docker run -d -i -t <docker_id> /bin/bash
- 进入容器
> docker exec -it <docker_id> bash
- 安装工具
> yum install -y net-tools
- docker删除image
> docker rmi <docker_id>
docker与windows配置共享文件夹
首先准备将windows下的D:\LocalDockerShare这个文件夹作为共享文件夹
- Docker desktop设置setting
- 将文件夹共享
> docker run -v d:/LocalDockerShare:/LocalDockerShare centos:6.9 ls /LocalDockerShare
## 或者
> docker run -itv d:/LocalDockerShare:/LocalDockerShare centos:6.9 /bin/bash
d:/LocalDockerShare:/LocalDockerShare
: 是windows的路径,冒号后面是docker的文件夹(没有就新建)centos:6.9
: 是docker image的 REPOSITORY, 6.9是iamge的TAGls /LocalDockerShare
: 是看一下docker image下的文件夹下
- 进入docker
> docker exec -it <docker_id> bash
可以看见LocalDockerShare 文件夹
- 验证一下,在docker里新建了文件,可以看到在
D:\LocalDockerShare
也出现了cat > file3.txt
pip离线安装评package
这一切建立在online的机器(windows)上已经安装了docker,并且配置了和服务器相同的系统环境,当然也安装了anaconda或miniconda
本机docker id : 72910c4b707c
同时安装了anaconda, 设置了虚拟环境JZFK
接下来离线安装pkg就很简单了,以shap为例:
在docker环境中进行如下操作:
- 下载包及其依赖
> mkdir shap
> cd shap
> pip download shap
shap文件夹下面就会将其依赖全部下载下来:
- 离线安装
将shap文件夹拷贝到offline机器后,
> pip install --no-index --find-links=file:/offline_package_dir shap
注意:/offline_package_dir
是shap
的路径,可以是相对路径也可以是绝对路径
虚拟环境离线迁移
Online环境操作
# 下载包
pip install conda-pack
# 打包环境
conda pack -n datamap
最后打包成·后缀为.tar.gz的压缩文件。
Offline环境操作
# 创建文件夹
mkdir datamap
# 解压
tar -xzvf datamap.tar.gz -C /home/jiangming/anaconda3/envs/datamap
结束!