Django和'virtualenv' - 适当的项目结构

Ale*_*uck 14 python django virtualenv

我设置了一个本地开发项目结构的困境.这是我的设置:

  • Python 2.7
  • Django 1.9
  • Mac OSX El Capitan 10.11
  • MySQL 5.7

我犯了一个"错误",即全局设置我的项目而不是虚拟环境(使用' pip'安装所有内容/>).阅读本文后,我仍然没有完成所有步骤.它是否正确:

  1. 我安装全局python(pip,virtualenv in '/>')
  2. 然后我走到哪里我的项目将驻留,例如位置/users/user/documents/projects/project1距离内 "PROJECT1"我用"的virtualenv"创建此项目的虚拟环境(这将创建一个/virtual env/文件夹里面/project1/的文件夹)
  3. 激活这个虚拟环境 pip install django
  4. 然后从新创建的/virtual env/文件夹I startproject中创建/project1/文件/virtual env/夹中的另一个文件夹
  5. 在当前shell会话中仍然激活虚拟环境的情况下,我继续创建脚本,站点和应用程序文件

广告2. virtualenv文件夹应该位于主"project1"文件夹中,还是应该包含它?

广告4.这是正确的还是我可以在不先激活虚拟环境的情况下执行此操作?

我的结构目前看起来像这样(从根目录开始:) /users/myUser/documents/projects/:

/project1/
    /website1/
        /static/
        /templates/
        __init.py__
        settings.py
        urls.py
        views.py
        wsgi.py
Run Code Online (Sandbox Code Playgroud)

Nik*_*ita 16

常见的解决方案是将虚拟环境和项目保存在单独的文件夹中,例如/users/myUser/.venvs用于虚拟环境和/users/myUser/documents/projects/项目.在其他方面,你自己得到了正确的答案.所以:

  1. 您需要安装全局Python和virtualenv.
  2. 为虚拟环境创建directoriy,例如run mkdir /users/myUser/.venvs.
  3. 为您的项目创建虚拟环境virtualenv /users/myUser/.venvs/project1_venv.
  4. 激活当前shell会话的环境/users/myUser/.venvs/project1_venv/bin/activate.
  5. 在此环境中安装django和其他任何东西pip install django,或者更好地使用requirements.txt文件来跟踪所有项目依赖项.
  6. 停用环境,运行deactivate.

现在,当您想要使用创建的虚拟环境运行项目时,在控制台窗口中运行/users/myUser/.venvs/project1_venv/bin/activate然后python /users/myUser/documents/projects/project1/manage.py runserver.您可以从任何目录激活venv,它为当前shell窗口python ...激活,激活后该窗口中的任何运行都将使用此虚拟环境.激活脚本以某种方式修改环境变量,以便使用来自venv的解释器和库而不是全局的解释器和库.(虽然也有选择使用全球的.)

  • @AlexStarbuck,您必须研究[StackOverflow Meta](http://meta.stackoverflow.com/)才能自行找到答案。但总的来说,所有答案都留在这里,标记一个答案(最适合您的问题)的想法是,其他有类似问题的人可以更快地找到解决方案。因此,总的来说,这与“最快”的答案无关,而与最“有用”的答案有关。无论如何,很高兴我能提供帮助。 (2认同)

Ala*_*air 12

存储虚拟环境的位置并不重要.找到适合您的项目结构.

我不会将虚拟环境置于项目中,因为您不应将其检入版本控制(尽管您可以使用忽略).通常,您只需要检入需求文件,以便重新创建环境.

我不会把项目放在虚拟环境中,因为虚拟环境是一次性的.您可能希望在不破坏项目的情况下销毁虚拟环境.此外,您可能希望在不同的虚拟环境下运行相同的项目,例如在升级之前在Django 1.8和1.9上测试您的代码.

你可能会发现virtualenvwrapper很有用.它有一些工具可以轻松地在虚拟环境之间创建和切换.它将您的所有虚拟环境存储在一个位置,因此您不必担心放置它们的位置.

这是正确的还是我可以在不首先激活虚拟环境的情况下完成?

在创建/处理项目之前,应激活虚拟环境并安装django.