首頁  >  文章  >  後端開發  >  如何在 python 中檢查我的套件的相容庫版本間隔?

如何在 python 中檢查我的套件的相容庫版本間隔?

WBOY
WBOY轉載
2024-02-08 22:21:241141瀏覽

如何在 python 中检查我的包的兼容库版本间隔?

問題內容

我正在開發一個私人Python庫,並且我正在其中使用其他公共庫。我想為我的自訂庫使用的每個公共庫定義相容版本的間隔。

我已經實作了測試來檢查該函式庫是否正常運作。只需找到一種方法來在每個公共庫的每個組合中測試我的程式碼。

我嘗試使用 tox,但似乎我必須在 tox.ini 檔案中編寫每個庫的組合,以便它可以使用版本不同的庫創建環境。有沒有一種自動化的方法可以做到這一點?

例如:我的開發環境有以下函式庫,並且通過了我的測試。

  • numpy==1.24.3

  • matplotlib==3.7.3

我想知道是否可以測試以下組合

  • numpy==1.24.0, 1.24.1 ... 1.24.x
  • matplotlib==3.7.1, 3.7.2 ... 3.7.x

以自動化的方式。


正確答案


感謝所有在評論部分幫助過我的人。正如 @sinoroc 所建議的,使用 nox 以非常直觀的方式解決了我的問題。儘管這不是常見的做法,但我將分享我在問題中給定範例中使用的解決方案,以防有人像我一樣需要測試他們的專案。

noxfile.py 中的程式碼如下。

import nox

@nox.session(name = "test_sample")
@nox.parametrize("numpy", ["1.24.3", "1.24.2"])
@nox.parametrize("matplotlib", ["3.7.3", "3.7.2"])
def tests(session, numpy, matplotlib):
    session.install(f"numpy=={numpy}", f"matplotlib=={matplotlib}")
    session.run("pytest")

參數化裝飾器定義將使用的版本。由於我對兩個不同的函式庫使用了兩個不同的版本,因此不同版本組合會得到4(2*2)個測試結果。

注意:我觀察到 nox 使用 python -m pip 指令來安裝函式庫。因此,如果我們測試的公共庫之間具有共同的依賴關係,則可能會出現覆蓋問題,即在安裝另一個庫時,給定版本的庫被覆蓋。我找不到解決方案,但這已經是版本測試所能得到的最精確的了。

以上是如何在 python 中檢查我的套件的相容庫版本間隔?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:stackoverflow.com。如有侵權,請聯絡admin@php.cn刪除