由于公司内网是无法访问互联网的,当需要安装某个python模块包时,之前的做法是下载一个安装一个,等安装的时候,提示自己缺少什么模块包时,再去下载相应的依赖包,然后传输到内网进行安装,但这样子经常就会出现,安装了一上午,相关的环境还是没有安装完成,就很低效。
在外网使用pip download指定版本号下载模块包,且将相关依赖包都一并下载保存到文件夹中,且使用python脚本生成对应的requirement.txt文件,然后再一起打包传输到内网。最后使用pip install 批量安装。这样子就可以节省掉很多的时间,也提高了环境准备的效率,可以将更多的时间投入到开发上。
在外网(可连接互联网)上执行如下命令:
-d 指定下载保存的目录。
pip download nose-allure-plugin==1.0 -d D:\tools\python\allure-packages
python的pip安装,可以读取requirement.txt文件,去下载、安装对应版本的模块包,格式为:模块名==版本号。
我这里自行书写了python脚本,来生成该requirement.txt文件,代码如下:
# coding: utf-8
import re,os
dirpath = "D:\\tools\\python\\allure-packages" # 模块包的路径
requirementpath = "D:\\tools\\python\\requirement.txt" # requirement.txt保存路径
filelist = os.popen('dir '+dirpath).readlines() # 执行CMD命令dir,查看模块路径下的所有文件列表
with open(requirementpath, 'w+') as f:
for filename in filelist[7:-2]:
#print(filename)
print(filename.split()[-1].split('-')[0]+'=='+filename.split()[-1].split('-')[1].strip(".tar.gz"))
f.write(filename.split()[-1].split('-')[0]+'=='+filename.split()[-1].split('-')[1].strip(".tar.gz")+'\n')
使用相应的传输工具,将刚刚的模块包目录和requirement.txt打包传输至内网并解压,解压至D:\tools\python\目录下(目录可更换)。
安装时,在cmd窗口执行如下命令:
pip install --no-index --find-links=D:\tools\python\allure-packages -r D:\tools\python\requirement.txt
# --find-links 指定查找模块包的路径,根据自己解压的目录自行修改
# -r 指定requirement.txt文件路径,根据自己存放的路径自行修改
# pip 将根据requirement.txt列出的模块包和版本号,去--find-links配置的路径下查找对应的安装包进行安装
执行完上述命令后,有如下字眼表示安装成功:
执行pip list命令,也可查看到已安装的模块包:
至此,外网下载所有依赖包,生成对应的requirement.txt文件,传输至内网进行安装,全流程就结束了。