Jestem nowy w Pythonie venv, więc przepraszam za możliwe głupie pytanie.

Rozwijam małą bibliotekę. Stworzyłem wirtualne środowisko deweloperskie ze wszystkimi pakietami niezbędnymi do korzystania z biblioteki i zamrażam wszystkie wersje wymagań do Requirements.txt.

Chciałbym również utworzyć wymagania_testowe ze wszystkimi pakietami potrzebnymi do programowania i testów. Czyli użytkownik zainstaluje wymagania z Requirements.txt, a programista z Require_test.txt ze wszystkimi niezbędnymi bibliotekami (np. Pytest, asv, sphinx).

Teraz stworzyłem dev venv, a teraz chcę stworzyć testowe venv, oczywiście nie chcę dwukrotnie instalować tych samych bibliotek. Czy jest możliwe udostępnianie niektórych bibliotek z jednej firmy do drugiej?

2
LinearLeopard 1 kwiecień 2020, 17:29

3 odpowiedzi

Najlepsza odpowiedź

Czy jest możliwe udostępnianie niektórych bibliotek z jednej firmy do drugiej?

Nie. Ta sama biblioteka (lub aplikacja) zostanie zainstalowana raz na środowisko wirtualne, instalacji nie można współużytkować między środowiskami. I tak jest doskonale. O to właśnie chodzi w środowiskach wirtualnych, że dwie instalacje z tej samej biblioteki są od siebie odizolowane, w szczególności w przypadku, gdy dwie różne wersje tej samej biblioteki są wymagane dla dwóch różnych projektów.

Aby być całkowicie uczciwym, istnieją sposoby współdzielenia jednej instalacji tej samej biblioteki między dwoma środowiskami wirtualnymi i powody, dla których warto to zrobić. Jeden słynny przykład, który znam obecnie, znajduje się w nowszych wersjach virtualenv (wersje 20+). W skrócie: to narzędzie tworzy środowiska wirtualne i (w określonych warunkach) może ponownie wykorzystywać (udostępniać) instalacje pip , setuptools i wheel w wielu środowiskach, zobacz app-data seeder dla virtualenv .

Więcej dyskusji na ten temat:

2
sinoroc 4 kwiecień 2020, 07:40

Nawet w środowiskach wirtualnych istnieje wiele bibliotek, które są dostarczane z preinstalowanym pythonem i nie są potrzebne w tworzonym pakiecie. Kiedy uruchamiam pip freeze w zupełnie nowym środowisku wirtualnym, zrzuca 30 pakietów i na pewno nie są potrzebne do mojego projektu.

Zalecam ręczne wykonanie obsługi zależności (przynajmniej produkcyjnej), w ten sposób nie będziesz dołączać bezużytecznych bibliotek i utrzymasz plik zależności w czystości.

-1
Pablo Martinez 1 kwiecień 2020, 15:10

Myślę, że jest zalecane i zalecane, aby mieć wiele urządzeń Venv i wiele środowisk, czy to na tej samej maszynie. więc po prostu miej kolejną venv. Dobrze jest mieć tę samą bibliotekę obecną w obu wenvach.

-1
Muhammad Moiz Ahmed 1 kwiecień 2020, 14:57