Jestem programistą ruby próbującym nauczyć się Pythona. Jestem ładną rodziną z pyenv, ponieważ jest to jak kopiowanie i wklejanie z rbenv. Pyenv pomaga pozwolić na posiadanie więcej niż jednej wersji Pythona w systemie, a także izolować Pythona bez dotykania wrażliwej części systemu.
Przypuszczam, że każda instalacja Pythona zawiera pakiet pip. Nadal nie rozumiem, że istnieje wiele dobrych bibliotek Pythona, które sugerują użycie tego virtualenv i anaconda. Mogę nawet znaleźć wtyczkę virtualenv do pyenv.
Teraz jestem mylony z celem tych dwóch pyenv i virtualenv. gorzej w pyenv jest wtyczka virtualenv.
moje pytania to:
- Jaka jest różnica między pyenv a virtualenv?
- Czy jest jakaś różnica w używaniu polecenia pip zarówno w pyenv, jak i virtualenv?
- co robi ten pyenv virutalenv?
Twoje wyjaśnienie z przykładem będzie bardzo mile widziane.
Odpowiedzi:
Edycja: Warto
pip
tu również wspomnieć ,conda
apip
podobieństwa i różnice są istotne dla tego tematu .pip: Python Package Manager.
pip
Pythonie jako odpowiednikugem
polecenia rubypip
nie jest domyślnie dołączony do języka Python.brew install python
sudo easy_install pip
gemfile
pip freeze > requirements.txt
pyenv: Menedżer wersji Pythona
pyenv
pozwala to łatwo zarządzać.virtualenv: Menedżer środowiska Python.
virtualenv
, po prostu wywołajvirtualenv ENV
, gdzieENV
jest katalog do umieszczenia nowego środowiska wirtualnego.virtualenv
, musiszsource ENV/bin/activate
. Aby przestać korzystać, po prostu zadzwońdeactivate
.virtualenv
można zainstalować wszystkie wymagania pakietu obszaru roboczego, uruchamiając plikpip install -r
projekturequirements.txt
.Anaconda: menedżer pakietów + menedżer środowiska + dodatkowe biblioteki naukowe.
conda install <packagename>
miniconda
wersja, która wydaje się być prostszą opcją niż użyciepip
+virtualenv
, chociaż nie mam doświadczenia w używaniu go osobiście.conda
pozwala na instalację pakietów, pakiety te są oddzielne od pakietów PyPI, więc nadal może być konieczne dodatkowe użycie pip, w zależności od typów pakietów, które chcesz zainstalować.Zobacz też:
źródło
Prosta analogia:
Ponieważ używam python3, wolę wbudowane środowisko wirtualne python3 o nazwie venv . venv jest prosty i łatwy w użyciu. Zalecałbym przeczytanie jego oficjalnych dokumentów. Dokument jest krótki i zwięzły.
W Ruby tak naprawdę nie potrzebujemy środowiska wirtualnego, ponieważ zajmuje się nim bundler. Zarówno wirtualne środowisko, jak i pakiet są świetne, ale mają inną koncepcję, ale próbują rozwiązać ten sam problem.
źródło