- n
venv, это встроенный инструмент,virtualenvнужно отдельно устанавливать nvenvсоздает окружение дольше, чемvirtualenvn
Есть ли еще разница? (русскоязычных тем по этому вопросу не нашел)
PythonLib
Питон для всех
question@mail.ru
·
01.01.1970 03:00
venv, это встроенный инструмент, virtualenv нужно отдельно устанавливатьvenv создает окружение дольше, чем virtualenvЕсть ли еще разница? (русскоязычных тем по этому вопросу не нашел)
answer@mail.ru
·
01.01.1970 03:00
Перевод с enSO с последними правками от 27.06.2021 (автор )
nЭто персональная рекомендация от автора ответа: начните обучение с и - инструменты, которые работают с обеими версиями Python 2 и 3 и в различных ситуациях и беритесь за другие, как только они вам понадобятся.
nЭто работает как установка группы файлов в директорию (например: env/), а затем модифицируется переменная среды PATH добавлением к ней префикса пользовательской директории bin (например: env/bin/). Точная копия бинарников python или python3 распологается в данной директории и Python запрограммирован так, что сначала ищет библиотеки относительно данного пути, в директории окружения. Данный инструмент не является частью стандартной библиотеки Python, но официально благославлена . Единожды активировав, вы можете устанавливать пакеты в виртуальное пространство, используя pip.
PATH добавляется ~/.pyenv/shims, где находятся специальные файлы сопоставления команд Python (python, pip). Это не копии команд, поставляемых с Python, а специальные скрипты, которые на лету решают какую версию Python запустить, основываясь на PYENV_VERSION-переменной среды, либо на .python-version-файле, либо ~/.pyenv/version файле. pyenv так же облегчает процессы скачивания и установки нескольких версий Python при использовании команды pyenv install.pyenv, от того же автора что и pyenv и позволяет удобно использовать pyenv и virtualenv одновременно. Однако, если вы используете Python 3.3 или выше, то pyenv-virtualenv будет пробовать запускать python -m venv, если таковое доступно, иначе virtualenv. Вы можете использовать virtualenv и pyenv вместе, без pyenv-virtualenv, если вы не нуждаетесь в удобном функционале.virtualenv (см. ). У вас появляются такие команды, как mkvirtualenv, lssitepackages и особенно workon для переключения между различными каталогами virtualenv.Этот инструмент особенно полезен, если вам нужно несколько каталогов virtualenv.pyenv того же автора, для удобной интеграции virtualenvwrapper в pyenv.Pipfile, pip и virtualenv в одну команду в командной строке. Каталог virtualenv обычно помещается в ~/.local/share/virtualenvs/XXX, где XXX является хешем пути к каталогу проекта. Это отличает данный инструмент от virtualenv, где директория обычно расположена в папке с проектом. pipenv предназначен для использования при разработке приложений Python (в отличие от библиотек). Существуют альтернативы pipenv, такие как , которые я не буду здесь перечислять, поскольку этот вопрос касается только пакетов с аналогичными названиями.pyvenv (не путать с из предыдущей части) - это скрипт, поставляемый с Python 3, версиях с 3.3 по 3.7, но и был удален из Python 3.8, поскольку имелись проблемы (не говоря уж о сбивающем с толку названии). В Python 3.6+, точный эквивалент - python3 -m venv.
- это пакет поставляемый с Python 3, который вы можете запустить с помощью python3 -m venv (хотя по некоторым причинам некоторые дистрибутивы выделяют его в отдельный пакет, такие как python3-venv в Ubuntu/Debian). Он служит той же цели, что и virtualenv, но имеет только подмножество его функций (). virtualenv по-прежнему более популярен, чем venv, тем более что первый поддерживает как Python 2, так и 3.