Python專案生成requirements.txt檔案
Python專案生成requirements.txt檔案
我們在寫Python指令碼的時候往往會用到很多第三方庫,但是當我們把指令碼換個環境之後就需要手動安裝第三方庫,有時候有的第三方庫還需要一些別的依賴。為了省事,我們可以匯出一個requirements.txt,把需要安裝的第三方庫放在裡面。下面我們就講一下如何匯出這個requirements.txt。
方法一:
pip freeze > requirements.txt
這種方法配合virtualenv才好用,否則會把整個環境中的包都列出來。所以往往不適用
方法二:
使用pipreqs,這個工具的好處是可以通過對專案目錄的掃描,發現使用了哪些庫,生成依賴清單。
安裝
pip install pipreqs
使用
在專案的根目錄下 使用 pipreqs ./
要注意:Windows系統下直接使用會出現編碼錯誤UnicodeDecodeError: 'gbk' codec can't decode byte 0xad in position 173: illegal multibyte sequence。所以在使用時要指定編碼格式。
pipreqs ./ --encoding=utf8
最後
最後生成出來的requirements.txt,可以根據這個檔案下載所有依賴
pip install -r requriements.txt
附上pipreqs的使用說明:
Usage:
pipreqs [options] <path>
Options:
--use-local Use ONLY local package info instead of querying PyPI
--pypi-server <url> Use custom PyPi server
--proxy <url> Use Proxy, parameter will be passed to requests library. You can also just set the
environments parameter in your terminal:
$ export HTTP_PROXY="http://10.10.1.10:3128"
$ export HTTPS_PROXY="https://10.10.1.10:1080"
--debug Print debug information
--ignore <dirs>... Ignore extra directories, each separated by a comma
--encoding <charset> Use encoding parameter for file open
--savepath <file> Save the list of requirements in the given file
--print Output the list of requirements in the standard output
--force Overwrite existing requirements.txt
--diff <file> Compare modules in requirements.txt to project imports.
--clean <file> Clean up requirements.txt by removing modules that are not imported in project.
使用方法:
pipreqs [options] <path>
選項:
--use-local 僅使用本地報資訊而不查詢PyPI
--pypi-server <url> 使用自定義的PyPI服務
--proxy <url> 使用Proxy,引數將傳遞給請求庫。你也可以設定
終端中的環境引數:
$ export HTTP_PROXY="http://10.10.1.10:3128"
$ export HTTPS_PROXY="https://10.10.1.10:1080"
--debug 列印除錯資訊
--ignore <dirs>... 忽略額外的目錄,每個目錄用逗號分隔
--encoding <charset> 使用編碼引數開啟檔案
--savepath <file> 儲存給定檔案中的需求列表
--print 輸出標準輸出中的需求列表
--force 覆蓋現有的requirements.txt
--diff <file> 將requirements.txt中的模組與專案匯入進行比較。
--clean <file> 通過刪除未在專案中匯入的模組來清理requirements.txt。