Pyhon項目中,一般都會有一個 requirements.txt
文件,這個文件主要是用於記錄當前項目下的所有依賴包及其精確的版本號,以方便在一個新環境下更快的進行部署。
使用 pip freeze 生成
一般情況,我們可以直接使用Python下的 pip
包管理工具,來生成 requirements.txt 文件,命令如下:
pip freeze > D:\pycharm\requirements.txt
其中,D:\pycharm\requirements.txt
為生成的 requirements.txt 文件的具體路徑。通過這個 pip freeze
方式生成時,會把整個Python環境下的所有包都列出生成,比較適用於Python項目為虛擬環境的情況。
使用 pipreqs 生成
我們還可以通過第三方庫 pipreqs
來生成 requirements.txt 文件,這個方式有一個好處,那就是它可以只生成我們當前Python項目中所用到的依賴包及其版本號,而不是像 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 當前Python項目的根目錄
。
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
在執行時,可能會出現上面提示編碼方式不對的情況,為解決這個問題,我們可以在執行命令中指定編碼方式為 utf-8
,如下:
D:\>pipreqs D:\pycharm\Code\flaskDemo --encoding=utf8 INFO: Successfully saved requirements file in D:\pycharm\Code\flaskDemo\requirements.txt
如果我們Python項目的根目錄中已存在 requirements.txt
,那么使用上面命令就會出現警告:
D:\>pipreqs D:\pycharm\Code\flaskDemo --encoding=utf-8 WARNING: Requirements.txt already exists, use --force to overwrite it
警告信息中的提示,告訴我們可以使用參數 --force
來覆蓋重新生成 requirements.txt
,如下:
pipreqs D:\pycharm\Code\flaskDemo --encoding=utf-8 --force
執行requirement.txt
生成 requirement.txt
后,我們查看其發現是這樣的格式:
PyMySQL==0.9.3 Flask==1.0.3 redis==3.4.1
pip
工具,執行命令:
pip install -r requirements.txt
,該命令會把
requirements.txt
文件中列出的庫依次進行安裝,最后等待安裝完成即可。