Kompleksowy poradnik virtualenv dla początkujących? [Zamknięte]


356

Ostatnio słyszę szum o virtualenv i jestem zainteresowany. Ale wszystko, co słyszałem, to chwalenie pochwał i nie mam jasnego zrozumienia, co to jest i jak z niego korzystać.

Szukam (najlepiej) samouczka, który może zabrać mnie z systemu Windows lub Linux bez Pythona i wyjaśnić każdy krok (w określonej kolejności):

  • co powinienem zrobić, aby móc zacząć korzystać virtualenv
  • konkretne powody, dla których używanie virtualenvjest dobrym pomysłem
  • sytuacje, w których mogę / nie mogę używać virtualenv
  • sytuacje, w których powinienem / nie powinienem używać virtualenv

I krok po kroku (kompleksowo) kilka przykładowych sytuacji, w których powinna być możliwa różnorodność +.

Jakie są dobre tutoriale na ten temat? Lub jeśli masz czas i zainteresowanie, być może możesz odpowiedzieć na kilka z tych pytań tutaj. Albo w twojej odpowiedzi, albo jako link do samouczków, które na nią odpowiadają, to są rzeczy, które chciałbym wiedzieć.


6
Ten artykuł od dabapps upraszcza koncepcje
suhair



Jako debiutant w Pythonie szukałem od razu intro do virtualenv (i pip) i właśnie to zrobiłem : [ dabapps.com/blog/introduction-to-pip-and-virtualenv-python/] [1] [1]: dabapps.com/blog/introduction-to-pip-and-virtualenv-python ten znakomity post na blogu usunął całą frustrację, którą miałem po przeczytaniu innych mylących / przybliżonych.
Arnaud Bouchot

Odpowiedzi:


245

3
+1 Zgadzam się, że były dobre dla takiego początkującego jak ja. Przejrzałem oba, teraz przynajmniej wiem, co to jest i jakie są podstawy jego uzyskiwania / używania. (Drugi z jakiegoś powodu wyjaśniono, activateale zaniedbano deactivateo_O). Nadal mam nadzieję na dalsze opracowanie, kiedy go używać (a kiedy nie), i głębsze przykłady.
Dan Burton

1
Uważam, że odpowiedzią jest, aby zawsze go używać, w taki sam sposób, w jaki należy zawsze używać kontroli wersji.
mlissner

1
Pamiętaj, że --no-site-packages jest przestarzałe, a teraz jest to zachowanie domyślne.
Adrian Lopez

1
To dało mi dobry pomysł virtualenv. Zalecane do użycia, o virtualenvwrapperktórym wspomniano w dalszej części dokumentu.
gihanchanuka

2
To zabawne, że w zasadzie ani jeden virtualenvsamouczek w Internecie, ani instrukcja użytkownika virtualenv nie pokazują, jak korzystać ze środowiska w skrypcie Pythona. Nie tworzysz środowiska tylko dla samego środowiska. Znalazłem jeden samouczek, który przynajmniej pokazuje alternatywę .
Pasza

34

Virtualenv to narzędzie do tworzenia izolowanych środowisk Python.

Załóżmy, że pracujesz w 2 różnych projektach, A i B. Projekt A to projekt internetowy, a zespół używa następujących pakietów:

  • Python 2.8.x
  • Django 1.6.x

Projekt B jest także projektem internetowym, ale Twój zespół używa:

  • Python 2.7.x
  • Django 1.4.x

Komputer, na którym pracujesz, nie ma żadnej wersji django, co powinieneś zrobić? Zainstalować django 1.4? django 1.6? Jeśli zainstalujesz django 1.4 na całym świecie, łatwo byłoby wskazać django 1.6 do pracy w projekcie A?

Virtualenv to twoje rozwiązanie! Możesz utworzyć 2 różne virtualenv, jeden dla projektu A i drugi dla projektu B. Teraz, kiedy musisz pracować w projekcie A, po prostu aktywuj virtualenv dla projektu A i odwrotnie.

Lepszą wskazówką przy korzystaniu z virtualenv jest zainstalowanie virtualenvwrapper w celu łatwego zarządzania wszystkimi posiadanymi virtualenv. Jest to opakowanie do tworzenia, pracy, usuwania virtualenv.


1
Chociaż ten link może odpowiedzieć na pytanie, lepiej dołączyć tutaj istotne części odpowiedzi i podać link w celach informacyjnych. Odpowiedzi zawierające tylko łącze mogą stać się nieprawidłowe, jeśli połączona strona ulegnie zmianie.
joce

2
Zredagowałem odpowiedź i dodałem do niej więcej wartości. Dzięki za opinie
lborgav


2

Do skonfigurowania virtualenv na czystej instalacji Ubuntu uznałem ten samouczek Zookeepera za najlepszy - możesz zignorować części dotyczące samego Zookepera. Dokumentacja virtualenvwrapper oferuje podobną treść, ale trudno powiedzieć, co dokładnie umieścić w .bashrcpliku.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.