最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python中Pipreqs自動生成項目依賴清單的實現(xiàn)

 更新時間:2026年04月27日 09:23:19   作者:冷炫風刃  
本文主要介紹了Python中Pipreqs自動生成項目依賴清單的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

pipreqs更靠譜因其僅掃描源碼中實際import的包,避免混入未使用的全局包;而pip freeze導出全部已安裝包,易導致部署失敗或CI沖突。

pipreqs 生成 requirements.txt 為什么比 pip freeze 更靠譜

因為 pipreqs 只掃描項目源碼中實際 import 的包,不會把全局環(huán)境里裝了但沒用到的包也塞進 requirements.txt。而 pip freeze 是照單全收當前環(huán)境所有已安裝包,尤其在虛擬環(huán)境管理不嚴時,容易混入開發(fā)依賴、臨時調(diào)試工具甚至系統(tǒng)級包。

常見錯誤現(xiàn)象:pip freeze > requirements.txt 導出后部署失敗,報錯說某個包根本沒被項目引用;或者 CI 流水線因多余依賴沖突卡住。

  • 適用場景:新項目初始化、交接給他人、準備 Docker 構建、提交前自查依賴
  • 不適用場景:想導出包括 pytest、black 這類純開發(fā)依賴——pipreqs 默認忽略它們(需額外參數(shù))
  • 注意:它不解析 setup.py 或 pyproject.toml,只看 Python 源文件里的 import 語句

安裝和基礎命令怎么跑起來

先確保沒和舊版 pipreqs 沖突(老版本有路徑 bug):

pip install --upgrade pipreqs

進到項目根目錄(含 src/ 或 app.py 等源碼的那層),執(zhí)行:

pipreqs ./

它會自動掃描所有 .py 文件,生成 requirements.txt。如果提示 FileNotFoundError: No such file or directory: 'requirements.txt',說明文件已存在且被鎖——刪掉再試,或加 --force。

  • --encoding=utf-8:遇到中文注釋或路徑時報 UnicodeDecodeError 時必加
  • --diff requirements.txt:對比現(xiàn)有文件,只輸出新增依賴(適合增量更新)
  • --savepath ./reqs-dev.txt:指定輸出路徑,避免覆蓋主文件

怎么讓 pipreqs 掃描子目錄和識別動態(tài)導入

默認情況下,pipreqs 只掃當前目錄及直接子目錄,遇到 src/mylib/ 或 apps/api/ 這類結構會漏掉。必須顯式指定路徑:

pipreqs ./src ./apps --force

但它無法識別字符串拼接式導入(如 __import__(f"{name}_plugin"))或 importlib.import_module() 動態(tài)加載——這類依賴得手動補進 requirements.txt。

  • 常見坑:Django 項目里 INSTALLED_APPS 列表中的第三方 app(如 'django-crispy-forms')不會被自動識別,必須人工核對添加
  • 若用 setuptools 的 entry_points 或插件機制,pipreqs 也無能為力
  • 建議搭配 grep -r "import\|from.*import" . --include="*.py" 快速掃一遍可疑模塊名

生成結果不準?先檢查 import 語句寫法

pipreqs 解析的是字面量 import,不是運行時行為。所以這些寫法會導致漏依賴:

  • import requests as req → 能識別 requests
  • import mypkg.utils → 只認 mypkg,不會深挖 utils 依賴的其他包
  • from . import config 或 from ..models import User → 相對導入只影響模塊查找,不引入新第三方包,沒問題
  • try: import ujson except ImportError: import json → ujson 會被識別,即使實際運行走的是 json

真正容易被忽略的是條件導入 + 第三方包組合,比如 if sys.version_info >= (3, 9): from importlib import resources else: import importlib_resources as resources——pipreqs 會把兩個都列進去,你得自己刪掉不生效的那個。

到此這篇關于Python中Pipreqs自動生成項目依賴清單的實現(xiàn)的文章就介紹到這了,更多相關Python Pipreqs自動生成依賴清單內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • python實現(xiàn)機器人卡牌

    python實現(xiàn)機器人卡牌

    這篇文章主要為大家詳細介紹了python實現(xiàn)機器人卡牌,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-10-10
  • Python導出依賴的五種方法

    Python導出依賴的五種方法

    本文主要介紹了Python導出依賴的五種方法,包括使用pip freeze、pipreqs、poetry、pip-tools和conda,具有一定的參考價值,感興趣的可以了解一下
    2025-03-03
  • Python中kivy庫的使用教程詳解

    Python中kivy庫的使用教程詳解

    Kivy是一個開源Python框架,用于構建具有創(chuàng)意和多點觸控功能的用戶界面(UI)應用程序,本文主要為大家介紹了一下Kivy的具體使用,需要的可以參考下
    2024-01-01
  • 在python里面運用多繼承方法詳解

    在python里面運用多繼承方法詳解

    在本篇文章中小編給各位分享的是關于在python里面運用多繼承方法以及知識點總結,有興趣的朋友們可以學習下。
    2019-07-07
  • Flask中sqlalchemy模塊的實例用法

    Flask中sqlalchemy模塊的實例用法

    在本篇文章里小編給大家整理了關于Flask中sqlalchemy模塊的實例用法,需要的朋友們可以學習下。
    2020-08-08
  • Tensorflow、Keras與Python版本兼容性完全解析

    Tensorflow、Keras與Python版本兼容性完全解析

    在深度學習的開發(fā)過程中,TensorFlow和Keras作為最流行的深度學習框架,已經(jīng)成為了眾多開發(fā)者和研究人員的首選,這篇文章主要介紹了Tensorflow、Keras與Python版本兼容性的相關資料,需要的朋友可以參考下
    2025-11-11
  • php使用遞歸與迭代實現(xiàn)快速排序示例

    php使用遞歸與迭代實現(xiàn)快速排序示例

    這篇文章主要介紹了php使用遞歸與迭代實現(xiàn)快速排序的示例,大家參考使用吧
    2014-01-01
  • Python2和3字符編碼的區(qū)別知識點整理

    Python2和3字符編碼的區(qū)別知識點整理

    在本篇文章中小編給各位分享的是關于Python2和3字符編碼的區(qū)別知識點,有需要的朋友們可以學習下。
    2019-08-08
  • 簡單談談Python的pycurl模塊

    簡單談談Python的pycurl模塊

    PycURl是一個C語言寫的libcurl的python綁定庫。libcurl 是一個自由的,并且容易使用的用在客戶端的 URL 傳輸庫。它的功能很強大,PycURL 是一個非常快速(參考多并發(fā)操作)和豐富完整特性的,但是有點復雜的接口。
    2018-04-04
  • 用Python解決計數(shù)原理問題的方法

    用Python解決計數(shù)原理問題的方法

    計數(shù)原理是數(shù)學中的重要研究對象之一,分類加法計數(shù)原理、分步乘法計數(shù)原理是解決計數(shù)問題的最基本、最重要的方法,也稱為基本計數(shù)原理,它們?yōu)榻鉀Q很多實際問題提供了思想和工具。本文教大家怎么用Python解決在數(shù)學中遇到的計數(shù)原理問題。
    2016-08-08

最新評論

黔东| 庆云县| 清水河县| 栾城县| 夏河县| 凤凰县| 新干县| 聊城市| 齐河县| 娄烦县| 康乐县| 罗城| 思茅市| 噶尔县| 禄丰县| 永靖县| 若羌县| 静安区| 永顺县| 武义县| 陕西省| 子长县| 湘阴县| 开封县| 金华市| 邢台市| 来安县| 洞头县| 乌兰察布市| 柘荣县| 库尔勒市| 临沭县| 兴仁县| 曲阜市| 丰城市| 攀枝花市| 封开县| 丰县| 海城市| 昭觉县| 富顺县|