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, при этом он активируется.