Django virtualenv layout
Я очень новичок в джанго. Я просто задаю очень простой вопрос о макете проекта, используя virtualenv. Когда мы создаем virtualenv и устанавливаем все зависимости - django и т.д., Мне нужно переключить мой каталог на virtualenv, а затем создать там проект? Или мне нужно создать мой проект за пределами virtualenv. Прошу прощения, если это очень простой вопрос.
Ответы
Ответ 1
Нет, каталог, в котором вы создаете виртуальную среду, полностью разделен и не туда, куда вы могли бы пойти, и создать проект django.
Фактически, вы обычно ставите все свои виртуальные среды в отдельный каталог; для меня я помещаю их в $HOME/work/.envs
(обратите внимание на .
, это делает каталог скрытым по умолчанию), поэтому мой рабочий процесс становится следующим:
$ virtualenv $HOME/work/.envs/new_env
$ source $HOME/work/.envs/new_env/bin/activate
(new_env)$ pip install django
(new_env)$ cd ~/projects
(new_env)/projects$ django-admin.py startproject atestproj
Итак, вы видите, что вы фактически ничего не делаете с каталогом виртуальной среды; он полностью управляется virtualenv
и pip
.
Проект virtualenvwrapper
упрощает управление виртуальными средами в центральном расположении.
Ответ 2
Структура каталогов для использования с virtualenv должна быть следующей:
|-- project_name
|-- django
|-- project_name
|-- virtualenv
|-- project_name
|-- bin
Это, конечно, не окончательный ответ на то, как должна быть изложена структура вашего каталога проектов - однако она работала для меня и других, которых я знаю, на протяжении многих лет.
Я очень рекомендую структуру директорий проекта django "twoscoops" и учебник для начинающих:
https://github.com/twoscoops/django-twoscoops-project
Я также рекомендую virtualenvwrapper, чтобы упростить управление виртуальными средами:
http://virtualenvwrapper.readthedocs.org/en/latest/
Ответ 3
Это относится к самому сердцу того, как вы используете virtualenv: cd в каталоге virtualenv, затем активируете его (или наоборот - это не имеет большого значения). Обычный способ сделать это на linux (или cygwin) - это источник ./bin/activate/
изнутри virtualenv.
В этот момент, если вы используете pip
или python
, они будут локальными для этого virtualenv. Вы должны выполнять только свои установки и запускать свои материалы после активации virtualenv.
Итак, чтобы ответить на ваш вопрос: переключитесь и активируйте, прежде чем приступать к установке или делать что-либо. Делайте все внутри virtualenv, при этом он активируется.