Python項目如何生成requirements.txt文件


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

那么,對於 requirement.txt 中列出的第三方庫,應該如何去執行並安裝呢?安裝方式很簡單,我們通過 pip 工具,執行命令:pip install -r requirements.txt ,該命令會把 requirements.txt 文件中列出的庫依次進行安裝,最后等待安裝完成即可。


免責聲明!

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



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