Я программист ruby, пытающийся изучать Python. Я симпатичная семья с pyenv, так как это как копия и вставка из rbenv. Pyenv позволяет иметь более одной версии python в системе, а также изолировать python, не касаясь чувствительной части системы.
Я полагаю, что каждая установка Python поставляется с пакетом pip. Что я до сих пор не понимаю, так это то, что есть много хороших библиотек Python, которые предлагают использовать эти virtualenv и anaconda. Я даже могу найти плагин virtualenv для pyenv.
Теперь я путаюсь с назначением этих двух pyenv и virtualenv. хуже внутри pyenv есть плагин virtualenv.
мои вопросы:
- В чем разница между pyenv и virtualenv?
- Есть ли разница в использовании команды pip внутри pyenv и virtualenv?
- что делает этот pyenv virutalenv?
Ваше объяснение с примером будет высоко оценено.
Ответы:
Edit: Это стоит упомянуть
pip
здесь, а, какconda
иpip
есть сходства и различия , которые имеют отношение к этой теме .pip: менеджер пакетов Python.
pip
как питон эквивалент рубиновойgem
командыpip
по умолчанию не входит в python.brew install python
sudo easy_install pip
gemfile
pip freeze > requirements.txt
pyenv: менеджер версий Python
pyenv
вы сможете легко управлять этим.virtualenv: менеджер среды Python.
virtualenv
, просто вызовитеvirtualenv ENV
, гдеENV
находится каталог для размещения новой виртуальной среды.virtualenv
, вам нужноsource ENV/bin/activate
. Чтобы прекратить использование, просто позвонитеdeactivate
.virtualenv
вы можете установить все требования к пакетам рабочей области, запустив файлpip install -r
проектаrequirements.txt
.Анаконда: Менеджер пакетов + Менеджер среды + Дополнительные научные библиотеки.
conda install <packagename>
miniconda
версия, которая кажется более простой, чем использованиеpip
+virtualenv
, хотя у меня нет опыта ее использования лично.conda
позволяет устанавливать пакеты, эти пакеты отличаются от пакетов PyPI, поэтому вам все равно может потребоваться дополнительно использовать pip в зависимости от типов пакетов, которые необходимо установить.Смотрите также:
источник
Простая аналогия:
Поскольку я использую python3, я предпочитаю встроенную виртуальную среду python3 с именем venv . Venv прост и удобен в использовании. Я бы порекомендовал вам прочитать его официальные документы. Документ короткий и лаконичный.
В ruby нам не нужна виртуальная среда, потому что об этом заботится пакет. И виртуальный env, и bundler великолепны, но у них разные концепции, но они пытаются решить одну и ту же проблему.
источник