zoukankan      html  css  js  c++  java
  • Python项目生成所有依赖包的清单

    最近写完的自动化脚本,分享给同事的时候发现依赖包很难解决(使用的不是virtualenv环境)。想起来之前看开源接口平台项目的时候可以一键下载依赖包,于是就找到了第三方包pipreqs,可以自动帮助我们自动生成requirements.txt

    第一步:下载pipreqs工具包(pip install pipreqs)

    Microsoft Windows [版本 10.0.17134.1069]
    (c) 2018 Microsoft Corporation。保留所有权利。
    
    C:Userswy.DESKTOP-KENPKKPDesktopDingdadingAPI>pip install pipreqs
    Collecting pipreqs
      Downloading https://files.pythonhosted.org/packages/f8/8d/2e7c15bc5fcab54f9c5b404b5668fdac65f5e3224b2116097fae1299fc98/pipreqs
    -0.4.9-py2.py3-none-any.whl
    Collecting docopt
      Downloading https://files.pythonhosted.org/packages/a2/55/8f8cab2afd404cf578136ef2cc5dfb50baa1761b68c9da1fb1e4eed343c9/docopt-
    0.6.2.tar.gz
    Collecting yarg
      Downloading https://files.pythonhosted.org/packages/8b/90/89a2ff242ccab6a24fbab18dbbabc67c51a6f0ed01f9a0f41689dc177419/yarg-0.
    1.9-py2.py3-none-any.whl
    Installing collected packages: docopt, yarg, pipreqs
        Running setup.py install for docopt ... done
    Successfully installed docopt-0.6.2 pipreqs-0.4.9 yarg-0.1.9
    

    第二步:切换到项目路径下,生成依赖包的txt文档(pipreqs ./ --encoding=utf8)

    期间遇到报错:编码错误(UnicodeDecodeError: 'gbk' codec can't decode byte 0x95 in position 40)

    C:Userswy.DESKTOP-KENPKKPDesktopDingdadingAPI>pipreqs ./
    Traceback (most recent call last):
      File "c:userswy.desktop-kenpkkpappdatalocalprogramspythonpython36lib
    unpy.py", line 193, in _run_module_as_main
        "__main__", mod_spec)
        ......
        extra_ignore_dirs=extra_ignore_dirs)
      File "c:userswy.desktop-kenpkkpappdatalocalprogramspythonpython36libsite-packagespipreqspipreqs.py", line 75, in ge
    t_all_imports
        contents = f.read()
    UnicodeDecodeError: 'gbk' codec can't decode byte 0x95 in position 40: illegal multibyte sequence
    
    

    找到原因是因为在Windows下需要制定编码方式为:uft-8,操作如下

    C:Userswy.DESKTOP-KENPKKPDesktopDingdadingAPI>pipreqs ./ --encoding=utf8
    INFO: Successfully saved requirements file in ./requirements.txt
    
    

    第三步:查看需要的依赖包(type requirements.txt)

    C:Userswy.DESKTOP-KENPKKPDesktopDingdadingAPI>type  requirements.txt
    requests==2.18.4
    xlutils==2.0.0
    xmltodict==0.12.0
    xlrd==1.2.0
    dicttoxml==1.7.4
    
    

    image

    下载依赖包方法(pip install -r requriements.txt)

    C:Userswy.DESKTOP-KENPKKPDesktopDingdadingAPI>pip install -r  requirements.txt
    Requirement already satisfied: requests==2.18.4 in c:userswy.desktop-kenpkkpappdatalocalprogramspythonpython36libsite-p
    ackages (from -r requirements.txt (line 1)) (2.18.4)
    Requirement already satisfied: xlutils==2.0.0 in c:userswy.desktop-kenpkkpappdatalocalprogramspythonpython36libsite-pac
    kages (from -r requirements.txt (line 2)) (2.0.0)
    Requirement already satisfied: xmltodict==0.12.0 in c:userswy.desktop-kenpkkpappdatalocalprogramspythonpython36libsite-
    packages (from -r requirements.txt (line 3)) (0.12.0)
    Requirement already satisfied: xlrd==1.2.0 in 
    

    附带pipreqs详细用法

    gitbug地址:https://github.com/bndr/pipreqs

    • 用法:
    • pipreqs [选项] <路径>
      
    • 选项:
    • use-local仅使用本地软件包信息,而不是查询PyPI
    • pypi-server 使用自定义PyPi服务器
    • proxy 使用代理,参数将传递到请求库。您也可以只设置终端中的environment参数:
    • ignore <目录> ...忽略多余的目录
    • encoding 使用encoding参数打开文件
    • savepath <文件>将需求列表保存在给定文件中
    • print在标准输出中输出需求列表
    • force覆盖现有的requirements.txt
    • clean <文件>通过删除项目中未导入的模块来清理requirements.txt。
  • 相关阅读:
    python 找到列表中满足条件的元素
    android activity动画anim
    Maven实战(Maven+Nexus建立私服【Linux系统】)
    linux命令
    服务端工程师入门与进阶 Java 版
    jvm字节占用空间分析
    Spark Streaming容错的改进和零数据丢失
    Spark分布式计算和RDD模型研究
    Apache Curator入门实战
    spark简单总结—短小精悍
  • 原文地址:https://www.cnblogs.com/Testking/p/11809534.html
Copyright © 2011-2022 走看看