Czy virtualenv jest odpowiedni dla serwera produkcyjnego?

15

Mam zamiar założyć aplikację Pythona ( Pyblosxom ) na moim serwerze i biorąc pod uwagę, aby go uruchomić w swoim virtualenv piaskownicy z --no-site-packages. Mam nadzieję, że taka konfiguracja będzie łatwa w transporcie i utrzymaniu przez lata.

Jednak używałem virtualenv tylko w środowiskach programistycznych, które odtwarzają lokalnie pewne ustawienia serwera, i większość źródeł o virtualenv wydaje się również wspominać o virtualenv do takiego zastosowania.

Czy jest jakaś wada uruchamiania aplikacji Python z virtualenv na serwerze na żywo?

UWAGA: Jeśli chodzi o przenośność instalacji, właśnie zostałem poinformowany o --relocatableopcji eksperymentalnej , którą należy uruchomić po zainstalowaniu nowego pakietu. Nawet gdybym tego nie zrobił, sądzę, że konfiguracja byłaby całkiem przenośna dzięki pipowi.

gnufs
źródło

Odpowiedzi:

15

Tak, virtualenv jest całkiem odpowiedni do produkcji - mamy (bardzo) dużych klientów korzystających z Pythona, uruchamiających swoje aplikacje wewnątrz virtualenv, i działa bardzo dobrze, aby utrzymać ich izolację od systemowej konfiguracji Pythona.

Jednak nie zalecałbym używania go do „przenośności” - próby przeniesienia całej rzeczy z maszyny na maszynę. Jest zbyt wiele okazji na subtelne niepowodzenia z powodu niezgodności, których nikt inny nie zauważy (ponieważ nie jest to coś, co powszechnie się robi). Zamiast tego dysponuj automatyzacją, która jest w stanie skonfigurować nową wirtualną wersję spełniającą Twoje wymagania na nowej maszynie.

womble
źródło