内网环境下批量安装python库
最近组里安排了新内网,又要配环境。
众所周知,内网安装python库需要先到www.pypi.org找到对应版本的包,然后再下载whl文件,上传到内网,再用pip install "文件地址"
去安装。
这样就会出现一个问题,鬼知道这个包需要的前置依赖是什么,pip会自动检查前置依赖,然后自动从源下载,但是内网又连不上互联网,然后要等三五次连接失败才结束。
深感这个过程之麻烦,于是写了两个powershell脚本,一个自动批量下载指定的包,一个自动安装所有的包。
使用过程如下:
-
首先查看内网环境的python版本,然后在外网的anaconda中创建一个同样python版本的虚拟环境,这是为了保证pip自动安装的库的版本能使用在内网里。
-
打开anaconda powershell promt,这是内置了anaconda指令的powershell控制台,切换到对应的虚拟环境。
-
替换下面脚本中的包列表字符串和文件夹地址字符串,然后复制粘贴并运行,运行完就会下载好包含各种whl的文件夹了
# 替换,包必须是能正常pip install的包,例如包含cv2模块的包不是cv2,而是opencv-python $packagesString = "matplotlib pyside6 opencv-python" # 替换,最后要加'\' $folder = "E:\python3_9_12\" $packages = $packagesString -split " " foreach ($package in $packages) { pip download $package -d $folder$package }
-
上传到内网,然后在内网的powershell中运行以下脚本,即可将文件夹下所有的库都安装到当前的python环境中。
# 替换成内网中的路径,最后要加'\' $folderPath = "D:\python\" $folders = Get-ChildItem -Path $folderPath -Directory foreach ($folder in $folders) { pip install --no-index --find-links=$folderPath$folder $folder }
最后就大功告成了,终于摆脱了麻烦的安装过程。