Зачем нужен виртуальный?

Я новичок в Python.

Я читаю virtualenv предпочтительнее во время разработки проекта Python.

Я не мог понять этого. Почему virtualenv?

Ответ 1

Virtualenv сохраняет ваши пакеты Python в виртуальной среде, локализованной в вашем проекте, вместо того, чтобы заставлять вас устанавливать ваши пакеты по всей системе.

Для этого есть ряд преимуществ,

  • первое и главное - вы можете иметь несколько virtulenvs, поэтому вы можете иметь несколько наборов пакетов для разных проектов, даже если эти наборы пакетов обычно конфликтуют друг с другом. Например, если один проект, который вы работаете над запусками на Django 1.4, а другой работает на Django 1.6, virtualenvs может полностью разделить эти проекты, чтобы вы могли одновременно удовлетворить оба требования.
  • во-вторых, облегчите вам выпуск вашего проекта со своими зависимыми модулями. Таким образом, вы можете легко создать файл requirements.txt.
  • в-третьих, это то, что он позволяет вам переключиться на другой установленный интерпретатор python для этого проекта *. Очень полезно (думаю, старые скрипты 2.x), но, к сожалению, недоступно в уже встроенном вену.

Обратите внимание, что virtualenv относится к "виртуальным средам", но это не то же самое, что "виртуализация" или "виртуальные машины" (это несколько сбивает с толку). Например, VMWare полностью отличается от virtualenv.

Ответ 2

Просто виртуальная среда - это изолированная рабочая копия Python, которая позволяет вам работать над конкретным проектом, не беспокоясь о влиянии на другие проекты.

Например, вы можете работать над проектом, который требует Django 1.3, а также поддерживает проект, который требует Django 1.0.

Ответ 3

VirtualEnv помогает вам создать локальную среду (не системную ), специфичную для проекта, над которым вы работаете.

Следовательно, когда вы начнете работать над несколькими проектами, ваши проекты будут иметь разные зависимости (например, разные версии Django), поэтому для каждого проекта вам понадобится другая виртуальная среда. VirtualEnv делает это за вас.

Как, вы используете VirtualEnv.. Попробуйте VirtualEnvWrapper: https://pypi.python.org/pypi/virtualenvwrapper

Он предоставляет некоторые утилиты для автоматического создания и удаления virtualenvs, например:

  1. mkvirtualenv <name>: создать новый Virtualenv
  2. workon <name>: использовать указанный virtualenv

и некоторые другие

Ответ 4

Предположим, вы работаете над несколькими проектами, один проект требует определенной версии python, а другой - другой. В случае, если вы не работаете в виртуальной среде, оба проекта получат доступ к одной и той же версии, установленной на вашем компьютере, что может привести к ошибке для одного.

В то время как в случае виртуальной среды вы создаете новый экземпляр вашей машины, где вы можете хранить все библиотеки, версии отдельно. Каждый раз вы можете создать новую виртуальную среду и работать над ней как с новой.