Pyhon項(xiàng)目中勺疼,一般都會(huì)有一個(gè) requirements.txt
文件,這個(gè)文件主要是用于記錄當(dāng)前項(xiàng)目下的所有依賴包及其精確的版本號(hào)捏鱼,以方便在一個(gè)新環(huán)境下更快的進(jìn)行部署恢口。
使用 pip freeze 生成
一般情況,我們可以直接使用Python下的 pip
包管理工具穷躁,來生成 requirements.txt 文件耕肩,命令如下:
pip freeze > D:\pycharm\requirements.txt
其中,D:\pycharm\requirements.txt
為生成的 requirements.txt 文件的具體路徑问潭。通過這個(gè) pip freeze
方式生成時(shí)猿诸,會(huì)把整個(gè)Python環(huán)境下的所有包都列出生成,比較適用于Python項(xiàng)目為虛擬環(huán)境的情況狡忙。
使用 pipreqs 生成
我們還可以通過第三方庫 pipreqs
來生成 requirements.txt 文件梳虽,這個(gè)方式有一個(gè)好處,那就是它可以只生成我們當(dāng)前Python項(xiàng)目中所用到的依賴包及其版本號(hào)灾茁,而不是像 pip freeze
方式一樣把所有包全部列出生成窜觉。
- 安裝pipreqs
可以直接通過 pip
來安裝 pipreqs
谷炸,安裝命令:
pip install pipreqs
安裝后通過 pip show pipreqs
查看,我這里安裝的版本是 0.4.10
禀挫。
D:\>pip3 show pipreqs
Name: pipreqs
Version: 0.4.10
Summary: Pip requirements.txt generator based on imports in project
Home-page: https://github.com/bndr/pipreqs
Author: Vadim Kravcenko
Author-email: vadim.kravcenko@gmail.com
License: Apache License
Location: d:\python\installation\lib\site-packages
Requires: yarg, docopt
Required-by:
- 使用pipreqs
pipreqs
使用起來也很容易旬陡,命令使用方式為:pipreqs 當(dāng)前Python項(xiàng)目的根目錄
。
D:\>pipreqs D:\pycharm\Code\flaskDemo
Traceback (most recent call last):
File "d:\python\installation\lib\runpy.py", line 193, in _run_module_as_main
"__main__", mod_spec)
File "d:\python\installation\lib\runpy.py", line 85, in _run_code
exec(code, run_globals)
File "D:\Python\installation\Scripts\pipreqs.exe\__main__.py", line 9, in <module>
File "d:\python\installation\lib\site-packages\pipreqs\pipreqs.py", line 470, in main
init(args)
File "d:\python\installation\lib\site-packages\pipreqs\pipreqs.py", line 409, in init
follow_links=follow_links)
File "d:\python\installation\lib\site-packages\pipreqs\pipreqs.py", line 122, in get_all_imports
contents = f.read()
UnicodeDecodeError: 'gbk' codec can't decode byte 0x84 in position 100: illegal multibyte sequence
在執(zhí)行時(shí)语婴,可能會(huì)出現(xiàn)上面提示編碼方式不對(duì)的情況描孟,為解決這個(gè)問題,我們可以在執(zhí)行命令中指定編碼方式為 utf-8
砰左,如下:
D:\>pipreqs D:\pycharm\Code\flaskDemo --encoding=utf8
INFO: Successfully saved requirements file in D:\pycharm\Code\flaskDemo\requirements.txt
如果我們Python項(xiàng)目的根目錄中已存在 requirements.txt
匿醒,那么使用上面命令就會(huì)出現(xiàn)警告:
D:\>pipreqs D:\pycharm\Code\flaskDemo --encoding=utf-8
WARNING: Requirements.txt already exists, use --force to overwrite it
警告信息中的提示,告訴我們可以使用參數(shù) --force
來覆蓋重新生成 requirements.txt
缠导,如下:
pipreqs D:\pycharm\Code\flaskDemo --encoding=utf-8 --force
執(zhí)行requirement.txt
生成 requirement.txt
后廉羔,我們查看其發(fā)現(xiàn)是這樣的格式:
PyMySQL==0.9.3
Flask==1.0.3
redis==3.4.1
那么,對(duì)于 requirement.txt 中列出的第三方庫僻造,應(yīng)該如何去執(zhí)行并安裝呢蜜另?安裝方式很簡(jiǎn)單,我們通過 pip
工具嫡意,執(zhí)行命令:pip install -r requirements.txt
举瑰,該命令會(huì)把 requirements.txt
文件中列出的庫依次進(jìn)行安裝,最后等待安裝完成即可蔬螟。