項(xiàng)目開發(fā)的時候,總是要搭建和部署環(huán)境,這時遭贸,就需要一個python第三方包的list,一般叫做requirements.txt心软。如果項(xiàng)目使用virtualenv環(huán)境壕吹,直接使用pip freeze即可,但是如果項(xiàng)目的依賴沒有維護(hù)删铃,就會很麻煩耳贬,這時我們就需要一個叫pipreqs的工具,可以幫助我們自動生成requirements.txt文件泳姐。
使用pip freeze
pip freeze > requirements.txt
這種方式配合virtualenv 才好使效拭,否則把整個環(huán)境中的包都列出來了。
pipreqs
這個工具的好處是可以通過對項(xiàng)目目錄的掃描胖秒,自動發(fā)現(xiàn)使用了那些類庫缎患,自動生成依賴清單。
缺點(diǎn)是可能會有些偏差阎肝,需要檢查并自己調(diào)整下挤渔。
安裝:
pip install pipreqs
用法:
在項(xiàng)目的根目錄下使用 pipreqs ./
如果是Windows系統(tǒng),會報編碼錯誤 (UnicodeDecodeError: 'gbk' codec can't decode byte 0xa8 in position 24: illegal multibyte sequence)
使用時风题,指定編碼格式
pipreqs ./ --encoding=utf8
生成requirements.txt 文件后判导,可以根據(jù)這個文件下載所有的依賴
用法:pip install -r requriements.txt 即可
附:
詳細(xì)用法:
pipreqs [options] <path>
選項(xiàng):
--use-local僅使用本地包信息而不是查詢PyPI
--pypi-server <url>使用自定義PyPi服務(wù)器
--proxy <url>使用Proxy嫉父,參數(shù)將傳遞給請求庫。你也可以設(shè)置
終端中的環(huán)境參數(shù):
$ export HTTP_PROXY =“http://10.10.1.10:3128”
$ export HTTPS_PROXY =“https://10.10.1.10:1080”
--debug打印調(diào)試信息
--ignore <dirs> ...忽略額外的目錄
--encoding <charset>使用編碼參數(shù)打開文件
--savepath <file>保存給定文件中的需求列表
--print輸出標(biāo)準(zhǔn)輸出中的需求列表
--force覆蓋現(xiàn)有的requirements.txt
--diff <file>將requirements.txt中的模塊與項(xiàng)目導(dǎo)入進(jìn)行比較眼刃。
--clean <file>通過刪除未在項(xiàng)目中導(dǎo)入的模塊來清理requirements.txt绕辖。