我在设置本地开发项目结构时遇到了难题。这是我的设置:
- python 2.7
- Django 1.9
- Mac OSX El Capitan 10.11
- MySQL 5.7
我犯了一个“错误”,即在全局而不是在虚拟环境中设置我的项目(使用“pip
”在 />
中安装所有内容)。看完this article我仍然没有得到所有的步骤。 这是否正确:
- 我安装了全局 python(
'/>'
中的 pip、virtualenv) - 然后我转到我的项目所在的位置,例如
/users/user/documents/projects/project1
和从内部 'project1' 我使用 'virtualenv ' 为这个项目创建一个虚拟环境(这会在/project1/
文件夹中创建一个/virtual env/
文件夹) - 激活这个虚拟环境并
pip install django
- 然后在新创建的
/virtual env/
文件夹中startproject
在/virtual env 中创建另一个
文件夹/project1/
文件夹/ - 在虚拟环境在当前 shell session 中仍处于激活状态的情况下,我继续创建我的脚本、站点和应用程序文件
广告 2.virtualenv 文件夹应该位于主“project1”文件夹内还是应该包含它?
广告 4.这是否正确,或者我可以在不先激活虚拟环境的情况下执行此操作吗?
我的结构目前看起来像这样(从根开始:/users/myUser/documents/projects/
):
/project1/
/website1/
/static/
/templates/
__init.py__
settings.py
urls.py
views.py
wsgi.py
最佳答案
常见的解决方案是将虚拟环境和项目保存在单独的文件夹中,例如/users/myUser/.venvs
用于虚拟环境,/users/myUser/documents/projects/
用于项目。在其他方面,您自己做得非常好。所以:
- 您需要安装全局 Python 和 virtualenv。
- 为虚拟环境创建目录,例如运行
mkdir/users/myUser/.venvs
。 - 为您的项目创建虚拟环境,
virtualenv/users/myUser/.venvs/project1_venv
。 - 激活当前 shell session 的环境
/users/myUser/.venvs/project1_venv/bin/activate
。 - 在此环境中安装 django 和其他任何东西
pip install django
,或者更好地使用requirements.txt
文件来跟踪所有项目依赖项。 - 停用环境,运行
deactivate
。
现在当你想使用创建的虚拟环境运行你的项目时,在你的控制台窗口中运行 /users/myUser/.venvs/project1_venv/bin/activate
然后 python/用户/myUser/documents/projects/project1/manage.py runserver
。您可以从任何目录激活 venv,它针对当前 shell 窗口激活,激活后在该窗口中运行的任何 python ...
都将使用此虚拟环境。激活脚本以某种方式修改环境变量,以便使用来自 venv 的解释器和库而不是全局的。 (尽管也有使用全局选项的选项。)
关于python - Django 和 'virtualenv' - 正确的项目结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35936425/