Каковы отношения между средами и проектами в virtualenvwrapper? - PullRequest
15 голосов
/ 27 ноября 2011

Другими словами, в чем разница между командами mkvirtualenv и mkproject?

У меня есть рабочий процесс, который выглядит следующим образом:

/dev
    projectA
        appA
        appB
    projectB
        appA
        appB

Все приложения общего доступанекоторые ресурсы (например, South, pep8 и т. д.), но другие ресурсы специфичны для каждого приложения.Должен ли я использовать «проекты» virtualenvwrapper для разделения этих зависимостей?

Ответы [ 2 ]

18 голосов
/ 24 февраля 2012

Из моего понимания документации , mkvirtualenv projectenv просто создает новую виртуальную среду с именем projectenv в $WORKON_HOME, а mkproject projectenv создает новую виртуальную среду с именем projectenv и новуюкаталог с именем projectenv;после создания каталог projectenv автоматически становится вашим текущим рабочим каталогом.Виртуальная среда будет существовать в $WORKON_HOME, а каталог разработки - в $PROJECT_HOME.

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

export PROJECT_HOME=$HOME/src/allprojects 
mkproject mynewproject

mynewproject теперь будет вашей текущей виртуальной средой и новым каталогом mynewprojectбудет существовать в ~/src/allprojects.

3 голосов
/ 29 ноября 2011

mkvirtualenv - это команда от virtualenvwrapper, которая облегчает управление python virtualenvs, а mkproject - из плагина virtualenvwrapper для управления вашими проектами (который был интегрирован непосредственно в virtualenvwrapper)

На странице плагина упоминаются следующие функции:

Управляет рабочими каталогами вашего проекта разработки вместе с вашим виртуальные среды. Определяет API для создания шаблонов быстро создавать новые среды последовательно. Используйте команду workon из virtualenvwrapper для переключения между проектами. Настраиваемые пользователем крючки для настройки новых проектов.

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

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

РЕДАКТИРОВАТЬ: virtualenvwrapper теперь имеет функциональность для копирования virtualenvs и для добавления каталогов в PATH virtualenv для общего доступа к библиотекам .

...