Django如何与virtualenv一起使用?

我了解如何创建virtualenv,激活该virtualenv,然后在激活virtualenv的同时安装django.例如:

virtualenv ~/narnia
source ~/narnia/bin/activate
pip install django

据我了解,当您“激活”虚拟环境时,它只是在您处于外壳中时更改了一些路径变量,仅此而已.因此,当在激活narnia的情况下将django与pip一起安装时,它只是将东西安装在相对于〜/ narnia而不是相对于/ usr的位置(例如,〜/ narnia / lib / python2.6 / site-packages而不是/usr/lib / python2.6 / site-packages).

现在让我们说我想用那个virtualenv创建一个django项目.我什至不必激活,对吗?我可以做:

deactivate
cd ~
narnia/bin/django-admin.py startproject myproject

因此,如果我在Web服务器上设置了“ myproject” …在这一点上,如何将django项目绑定到narnia virtualenv?系统路径变量不是简单的普通系统范围的python路径吗? “ myproject”如何知道使用纳尼亚环境?

我对它的工作方式有些困惑.任何帮助表示赞赏.

谢谢!

解决方法:

Web服务器通常有一种配置其Python使用的方法.您可以设置环境变量,路径等.使用这些工具指向virtualenv.

例如,在我的Apache httpd.conf中:

WSGIDaemonProcess myapp processes=2 threads=12 python-path=/home/nedbat/webapps/myapp/server:/home/nedbat/webapps/myapp/lib/python2.7
WSGIProcessGroup myapp
WSGIRestrictEmbedded On
WSGILazyInitialization On
WSGIScriptAlias / /home/nedbat/webapps/myapp/myapp.wsgi

我有一个myapp.wsgi文件:

import os
import site
import sys

VE = '/home/nedbat/webapps/myapp/ve'

site.addsitedir(VE + '/lib/python2.7/site-packages')

os.environ['DJANGO_SETTINGS_MODULE'] = 'prod_settings'
os.environ['USE_PYPY'] = 'y'
os.environ['TMPDIR'] = '/home/nedbat/webapps/myapp/tmp'

from django.core.handlers.wsgi import WSGIHandler

application = WSGIHandler()
上一篇:python-Pip全局安装,而不是在虚拟环境中安装-即使所有路径和pip都指向正确的位置


下一篇:在启动时使用virtualenvs运行python时查找模块