Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimanakah saya menyemak selang versi perpustakaan keserasian pakej saya dalam python?

Bagaimanakah saya menyemak selang versi perpustakaan keserasian pakej saya dalam python?

WBOY
WBOYke hadapan
2024-02-08 22:21:241141semak imbas

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

Kandungan soalan

Saya sedang membangunkan perpustakaan Python persendirian dan saya menggunakan perpustakaan awam lain di dalamnya. Saya ingin menentukan selang versi yang serasi untuk setiap perpustakaan awam yang digunakan oleh perpustakaan tersuai saya.

Saya telah melaksanakan ujian untuk memeriksa sama ada perpustakaan berfungsi dengan baik. Hanya perlu mencari cara untuk menguji kod saya dalam setiap gabungan setiap perpustakaan awam.

Saya cuba menggunakan tox tetapi nampaknya saya perlu menulis gabungan setiap perpustakaan dalam fail tox.ini supaya ia boleh mencipta persekitaran dengan versi perpustakaan yang berbeza. Adakah terdapat cara automatik untuk melakukan ini?

Contohnya: Persekitaran pembangunan saya mempunyai perpustakaan berikut, dan mereka lulus ujian saya.

  • numpy==1.24.3

  • matplotlib==3.7.3

Saya ingin tahu sama ada boleh menguji gabungan berikut

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

Dengan cara automatik.


Jawapan Betul


Terima kasih kepada semua yang membantu saya di ruangan komen. Seperti yang dicadangkan @sinoroc, menggunakan nox menyelesaikan masalah saya dengan cara yang sangat intuitif. Walaupun ini bukan amalan biasa, saya akan berkongsi penyelesaian yang saya gunakan dalam contoh yang diberikan dalam soalan sekiranya seseorang seperti saya perlu menguji projek mereka.

Kod dalam noxfile.py adalah seperti berikut.

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

Penghias berparameter mentakrifkan versi yang akan digunakan. Memandangkan saya menggunakan dua versi berbeza bagi dua perpustakaan berbeza, saya akan mendapat 4 (2*2) keputusan ujian untuk kombinasi versi yang berbeza.

Nota: Saya perhatikan bahawa nox menggunakan perintah python -m pip untuk memasang perpustakaan. Oleh itu, jika terdapat pergantungan biasa antara perpustakaan awam yang kami uji, isu liputan mungkin timbul apabila versi perpustakaan tertentu ditimpa apabila perpustakaan lain dipasang. Saya tidak dapat mencari penyelesaian, tetapi ini adalah tepat seperti yang boleh didapati oleh ujian versi.

Atas ialah kandungan terperinci Bagaimanakah saya menyemak selang versi perpustakaan keserasian pakej saya dalam python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:stackoverflow.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam