我知道如何当的virtualenv激活创建的virtualenv,激活的virtualenv,然后安装Django。 例如:
virtualenv ~/narnia
source ~/narnia/bin/activate
pip install django
从我的理解,当你“激活”的虚拟环境,它只是当你在一个外壳,仅此而已改变一些路径变量。 所以,当Django的安装与PIP而纳尼亚被激活,它安装简单的东西到相对于〜/纳尼亚位置,而不是相对于在/ usr(例如:〜/纳尼亚/ lib中/ python2.6的/站点包,而不是在/ usr / LIB / python2.6的/站点包)。
现在,让我们说,我想创建与一个virtualenv中Django项目。 我甚至没有被激活,是否正确? 我可能只是这样做:
deactivate
cd ~
narnia/bin/django-admin.py startproject myproject
所以,如果我有一个Web服务器上设置了“MyProject的” ......怎么是,Django项目在这一点上绑在纳尼亚的virtualenv? 不会在系统路径变量仅仅是正常的系统级蟒蛇的路径? 如何“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()
如果你想使用Django的一个virtualenv中在生产,甚至临时环境,我希望你能激活环境,这取决于你是否做手工,或使用如virtualenvwrapper,设置适当的环境变量。 我不知道它会有什么目的,在虚拟环境中安装Django,然后不使用它。
顺便说一句,就像我看这个我看到了相关的问题Django和VIRTUALENV开发/部署最佳实践在侧边栏显示出来。 这似乎是对您的设置,而相关的。