内网环境下批量安装python库,众所周知,内网安装p


最近组里安排了新内网,又要配环境。

众所周知,内网安装python库需要先到www.pypi.org找到对应版本的包,然后再下载whl文件,上传到内网,再用pip install "文件地址"去安装。

这样就会出现一个问题,鬼知道这个包需要的前置依赖是什么,pip会自动检查前置依赖,然后自动从源下载,但是内网又连不上互联网,然后要等三五次连接失败才结束。

深感这个过程之麻烦,于是写了两个powershell脚本,一个自动批量下载指定的包,一个自动安装所有的包。

使用过程如下:

  1. 首先查看内网环境的python版本,然后在外网的anaconda中创建一个同样python版本的虚拟环境,这是为了保证pip自动安装的库的版本能使用在内网里。

  2. 打开anaconda powershell promt,这是内置了anaconda指令的powershell控制台,切换到对应的虚拟环境。

  3. 替换下面脚本中的包列表字符串和文件夹地址字符串,然后复制粘贴并运行,运行完就会下载好包含各种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
    }
    

  1. 上传到内网,然后在内网的powershell中运行以下脚本,即可将文件夹下所有的库都安装到当前的python环境中。

    # 替换成内网中的路径,最后要加'\'
    $folderPath = "D:\python\"
    
    $folders = Get-ChildItem -Path $folderPath -Directory
    
    foreach ($folder in $folders) {
        pip install --no-index --find-links=$folderPath$folder $folder
    }
    

最后就大功告成了,终于摆脱了麻烦的安装过程。

评论关闭