zoukankan      html  css  js  c++  java
  • Python 查询第三方包依赖及下载

    Python 查询第三方包依赖及下载

    背景

    内网环境/无网环境安装python第三方包的时候太麻烦,比如requests,他需要依赖 charset-normalizer, urllib3, certifi, idna, 安装流程可能变成 安装requests->缺少包->下载缺少的包->安装,不断的重复这个步骤,所以为了解决这个问题 ,写出来如下脚本,然后在本地执行,将下载的包通过ftp传递到服务器上

    环境

    系统: windows 10

    python版本: 3.6.8

    核心

    依赖 pip show 和pip download 这两个命令

    脚本

    新建文件 testone.py

    # encoding:utf-8
    # -*- coding: UTF-8 -*-    
    # Author:PC-Jruing
    # FileName:testone
    # DateTime:2021/7/23 18:54
    # SoftWare: PyCharm
    
    
    import os, sys
    
    requires_set = []
    
    
    def Dependent_query(pkg_name):
        Output = os.popen(f"pip show {pkg_name}")
        Requires = Output.readlines()
        for line in Requires:
            if "Requires:" in line:
                requires_list = line.strip().split(':')[1].split(',')
                requires_list = [i for i in requires_list if i]
                if requires_list:
                    for requires in requires_list:
                        if requires:
                            requires_set.append(requires.strip())
                            Dependent_query(requires.strip())
    
    
    def download(requires_set):
        if isinstance(requires_set, list) and requires_set:
            for pkg in requires_set:
                print(f"==========开始下载{pkg}==========")
                pkg_Output = os.system(f"pip download {pkg}")
                print(pkg_Output)
    
    
    if __name__ == '__main__':
        pkg_name = sys.argv[1]
        requires_set.append(pkg_name)
        # 查询依赖包
        Dependent_query(pkg_name)
        print(f"安装顺序参考:{requires_set[::-1]}")
        # 启用下载依赖包功能
        # download(requires_set)
    
    

    执行: python testone.py requests

  • 相关阅读:
    Codeforces461E Appleman and a Game 做题心得
    关于贪心问题的处理
    各种容斥 笔记
    博弈论 笔记
    家庭多个路由器组网方案(AP+AC)
    21.06.06 训练赛
    Redirect...
    Web Api实践系列(三)route特性使用
    《Red Tuner》隐私政策
    前缀和-1915. 最美子字符串的数目
  • 原文地址:https://www.cnblogs.com/jruing/p/15060389.html
Copyright © 2011-2022 走看看