15

我对 Django 很陌生。我只是对使用 virtualenv 的项目布局有一个非常基本的问题。当我们创建 virtualenv 并安装所有依赖项-django 等时,我是否需要将我的目录切换到 virtualenv 然后在那里创建一个项目?或者我是否需要在 virtualenv 之外创建我的项目。如果这是一个非常基本的问题,我深表歉意。

4

3 回答 3

22

No, the directory where you create the virtual environment is completely separate and is not where you would go and create your django project.

In fact, you would usually put all your virtual environments in a separate directory; for me I put them in $HOME/work/.envs (note the ., this makes the directory hidden by default), so then my workflow becomes:

$ 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

So you see, you don't actually do anything with the virtual environment directory; it is completely managed by virtualenv and pip.

The virtualenvwrapper project makes this easier by managing your virtual environments in a central location.

于 2013-07-24T15:29:23.007 回答
2

与 virtualenv 一起使用的目录结构应如下所示:

|-- project_name
    |-- django
        |-- project_name

|-- virtualenv
    |-- project_name
        |-- bin

这当然不是你的项目目录结构应该如何布局的明确答案——然而,多年来它对我和我认识的其他人都有效。

我强烈推荐“twoscoops”的 django 项目目录结构和初学者教程: https ://github.com/twoscoops/django-twoscoops-project

我还推荐 virtualenvwrapper,以便更轻松地管理虚拟环境:http: //virtualenvwrapper.readthedocs.org/en/latest/

于 2013-07-24T15:40:31.480 回答
1

这触及了您如何使用 virtualenv 的核心: cd 到 virtualenv 目录,然后激活它(或相反 - 这并不重要)。在 linux(或 cygwin)上执行此操作的常用方法是./bin/activate/从 virtualenv 内部获取源代码。

那时,如果您使用piporpython他们将在该 virtualenv 本地。你应该只执行你的安装,并在激活 virtualenv后运行你的东西。

因此,回答您的问题:在开始安装或执行任何操作之前切换并激活。在 virtualenv 中执行所有操作,并激活它。

于 2013-07-24T15:01:16.927 回答