Python項目生成所有依賴包的清單


最近寫完的自動化腳本,分享給同事的時候發現依賴包很難解決(使用的不是virtualenv環境)。想起來之前看開源接口平台項目的時候可以一鍵下載依賴包,於是就找到了第三方包pipreqs,可以自動幫助我們自動生成requirements.txt

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

Microsoft Windows [版本 10.0.17134.1069]
(c) 2018 Microsoft Corporation。保留所有權利。

C:\Users\wy.DESKTOP-KENPKKP\Desktop\Dingda\dingAPI>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:\Users\wy.DESKTOP-KENPKKP\Desktop\Dingda\dingAPI>pipreqs ./
Traceback (most recent call last):
  File "c:\users\wy.desktop-kenpkkp\appdata\local\programs\python\python36\lib\runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
    ......
    extra_ignore_dirs=extra_ignore_dirs)
  File "c:\users\wy.desktop-kenpkkp\appdata\local\programs\python\python36\lib\site-packages\pipreqs\pipreqs.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:\Users\wy.DESKTOP-KENPKKP\Desktop\Dingda\dingAPI>pipreqs ./ --encoding=utf8
INFO: Successfully saved requirements file in ./requirements.txt

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

C:\Users\wy.DESKTOP-KENPKKP\Desktop\Dingda\dingAPI>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:\Users\wy.DESKTOP-KENPKKP\Desktop\Dingda\dingAPI>pip install -r  requirements.txt
Requirement already satisfied: requests==2.18.4 in c:\users\wy.desktop-kenpkkp\appdata\local\programs\python\python36\lib\site-p
ackages (from -r requirements.txt (line 1)) (2.18.4)
Requirement already satisfied: xlutils==2.0.0 in c:\users\wy.desktop-kenpkkp\appdata\local\programs\python\python36\lib\site-pac
kages (from -r requirements.txt (line 2)) (2.0.0)
Requirement already satisfied: xmltodict==0.12.0 in c:\users\wy.desktop-kenpkkp\appdata\local\programs\python\python36\lib\site-
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。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM