Heim >Backend-Entwicklung >Python-Tutorial >Wie überprüfe ich das Versionsintervall der Kompatibilitätsbibliothek meines Pakets in Python?

Wie überprüfe ich das Versionsintervall der Kompatibilitätsbibliothek meines Pakets in Python?

WBOY
WBOYnach vorne
2024-02-08 22:21:241196Durchsuche

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

Frageninhalt

Ich entwickle eine private Python-Bibliothek und verwende darin andere öffentliche Bibliotheken. Ich möchte für jede öffentliche Bibliothek, die meine benutzerdefinierte Bibliothek verwendet, ein kompatibles Versionsintervall definieren.

Ich habe Tests implementiert, um zu überprüfen, ob die Bibliothek ordnungsgemäß funktioniert. Ich muss nur einen Weg finden, meinen Code in jeder Kombination jeder öffentlichen Bibliothek zu testen.

Ich habe versucht, tox zu verwenden, aber es scheint, dass ich eine Kombination jeder Bibliothek in die tox.ini-Datei schreiben muss, damit die Umgebung mit verschiedenen Versionen der Bibliotheken erstellt werden kann. Gibt es eine automatisierte Möglichkeit, dies zu tun?

Zum Beispiel: Meine Entwicklungsumgebung verfügt über die folgenden Bibliotheken und sie haben meine Tests bestanden.

  • numpy==1.24.3

  • matplotlib==3.7.3

Ich würde gerne wissen, ob es möglich ist, die folgende Kombination zu testen

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

Auf automatisierte Weise.


Richtige Antwort


Vielen Dank an alle, die mir im Kommentarbereich geholfen haben. Wie @sinoroc vorgeschlagen hat, hat die Verwendung von nox mein Problem auf sehr intuitive Weise gelöst. Obwohl dies keine gängige Praxis ist, teile ich die Lösung, die ich im Beispiel in der Frage verwendet habe, für den Fall, dass jemand wie ich sein Projekt testen muss.

Der Code in noxfile.py lautet wie folgt.

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")

Der parametrisierte Dekorator definiert die Version, die verwendet wird. Da ich zwei verschiedene Versionen von zwei verschiedenen Bibliotheken verwendet habe, würde ich 4 (2*2) Testergebnisse für verschiedene Kombinationen von Versionen erhalten.

Hinweis: Ich habe beobachtet, dass nox den Befehl python -m pip verwendet, um Bibliotheken zu installieren. Wenn daher gemeinsame Abhängigkeiten zwischen den von uns getesteten öffentlichen Bibliotheken bestehen, kann es zu Abdeckungsproblemen kommen, wenn eine bestimmte Version der Bibliothek überschrieben wird, wenn eine andere Bibliothek installiert wird. Ich kann keine Lösung finden, aber das ist so genau, wie Versionstests nur sein können.

Das obige ist der detaillierte Inhalt vonWie überprüfe ich das Versionsintervall der Kompatibilitätsbibliothek meines Pakets in Python?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:stackoverflow.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen