我陷入困境,建立了本地开发项目结构。这是我的设置:
我犯了一个“错误”,即全局设置项目而不是虚拟环境(使用“pip
”安装/>
中的所有内容)。阅读this article后,我仍然没有完成所有步骤。 这是否正确:
'/>'
)/users/user/documents/projects/project1
和来自'project1'我使用'virtualenv'为这个项目创建一个虚拟环境(这会创建/virtual env/
文件夹中的/project1/
文件夹pip install django
/virtual env/
文件夹startproject
内创建/project1/
文件夹中的另一个/virtual env/
文件夹广告2。应该将virtualenv文件夹置于主“project1”文件夹中,还是应该包含它?
广告4。这是正确的还是我可以在不首先激活虚拟环境的情况下执行此操作?
我的结构目前看起来像这样(从根目录开始:/users/myUser/documents/projects/
):
/project1/
/website1/
/static/
/templates/
__init.py__
settings.py
urls.py
views.py
wsgi.py
答案 0 :(得分:14)
常见的解决方案是将虚拟环境和项目保存在单独的文件夹中,例如虚拟环境为/users/myUser/.venvs
,项目为/users/myUser/documents/projects/
。在其他方面,你自己得到了正确的答案。所以:
mkdir /users/myUser/.venvs
。virtualenv /users/myUser/.venvs/project1_venv
创建虚拟环境。/users/myUser/.venvs/project1_venv/bin/activate
的环境。pip install django
中安装django及其他任何内容,或者更好地使用requirements.txt
文件来跟踪所有项目依赖项。deactivate
。现在,当您想要使用创建的虚拟环境运行项目时,在控制台窗口中运行/users/myUser/.venvs/project1_venv/bin/activate
,然后运行python /users/myUser/documents/projects/project1/manage.py runserver
。您可以从任何目录激活venv,它为当前shell窗口激活,激活后该窗口中的任何python ...
运行将使用此虚拟环境。激活脚本以某种方式修改环境变量,以便使用来自venv的解释器和库而不是全局的解释器和库。 (虽然也有选择使用全球的。)
答案 1 :(得分:11)
存储虚拟环境的位置并不重要。找到适合您的项目结构。
我不会将虚拟环境置于项目中,因为您不应该将其检入版本控制(尽管您可以使用忽略)。通常,您只需要检入需求文件,以便重新创建环境。
我不会将项目置于虚拟环境中,因为虚拟环境是一次性的。您可能希望在不破坏项目的情况下销毁虚拟环境。此外,您可能希望在不同的虚拟环境下运行相同的项目,例如在升级之前在Django 1.8和1.9上测试你的代码。
您可能会发现virtualenvwrapper有用。它有一些工具可以轻松地在虚拟环境之间创建和切换。它将您的所有虚拟环境存储在一个地方,因此您不必担心放置它们的位置。
这是正确的还是可以在不首先激活虚拟环境的情况下进行?
在创建/处理项目之前,您应该激活虚拟环境并安装django。