Я не понимаю, где мне разместить свои virtualenv.
В моем первом проекте django я создал проект с помощью команды
django-admin.py startproject djangoproject
Затем я перешел в каталог djangoproject и запустил команду
virtualenv env
который создал каталог виртуальной среды на том же уровне, что и внутренний djangoproject
каталог.
Это неправильное место для создания virtualenv для этого конкретного проекта?
У меня сложилось впечатление, что большинство людей хранят все свои virtualenv вместе в совершенно другом каталоге, например ~/virtualenvs
, а затем используют virtualenvwrapper для переключения между ними.
Есть ли правильный способ сделать это?
Изменение расположения каталога virtualenv нарушает его
Это одно из преимуществ размещения каталога за пределами дерева репозитория, например, в разделе
~/.virtualenvs
withvirutalenvwrapper
.В противном случае, если вы сохраните его в дереве проекта, перемещение местоположения проекта нарушит работу virtualenv.
См .: Переименование папки virtualenv без ее нарушения
Есть,
--relocatable
но известно, что он не идеален.Еще одно небольшое преимущество: вам это не нужно
.gitignore
.Преимущества размещения gitignored в самом дереве проекта:
источник
Общепринятое место для их размещения - то же самое, что и установка virtualenvwrapper по умолчанию:
~/.virtualenvs
По теме: virtualenvwrapper - отличный инструмент, который предоставляет сокращения для общих команд virtualenv. http://www.doughellmann.com/projects/virtualenvwrapper/
источник
Если вы используете
pyenv install Python
, тогда pyenv-virtualenv будет лучшей практикой. Если установлен.python-version
файл, он может автоматически активировать или деактивировать виртуальную среду при смене рабочей папки.Pyenv-virtualenv
также поместите все виртуальные env в$HOME/.pyenv/versions
папку.источник
Исходя из моего личного опыта, я бы рекомендовал организовать все виртуальные среды в одном каталоге. Если только у кого-то не очень четкая память и он не может запоминать файлы / папки, разбросанные по файловой системе. Не большой поклонник использования других инструментов только для управления виртуальными средами. В VSCode, если я настраиваю (
python.venvPath
) каталог, содержащий все виртуальные среды, он может автоматически распознать их все.источник