2012-06-20 2 views
3

virtualenv를 생성하고 virtualenv를 활성화 한 다음 virtualenv가 활성화되어있는 동안 django를 설치하는 방법을 알고 있습니다. 예는 :django는 virtualenv와 어떻게 작동합니까?

내가 이해에서
virtualenv ~/narnia 
source ~/narnia/bin/activate 
pip install django 

, 당신은 당신이, 쉘에 불과있어없는 상태 가상 환경은 단지 몇 가지 경로 변수를 변경 "활성화"할 때. 따라서 dnangia가 활성화되어있는 동안 django가 pip와 함께 설치 될 때,/usr/narnia 대신/usr/narnia (예 : ~/narnia/lib/python2.6/site-packages 대신/usr/lib/python2.6/site-packages).

이제 가상 엔진으로 장고 프로젝트를 만들고 싶다고합시다. 나는 활성화 할 필요조차 없다, 맞습니까? 나는 다만 수 :

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

그래서, 내가 어떻게 장고 프로젝트는이 시점에서 나니아의 VIRTUALENV에 묶여있다 "MyProject를 ..."로 설정 웹 서버가 있다면? 시스템 경로 변수는 단순히 일반적인 시스템 전체 파이썬 경로가 아닐까요? "myproject"가 narnia 환경을 사용하는 방법을 어떻게 알 수 있습니까?

저는 어떻게 작동하는지 조금 혼란 스럽습니다. 어떤 도움을 주셔서 감사합니다.

감사합니다.

+0

아니면 django 프로젝트 자체가 특정 환경과 관련이 없지만 WSGI는 무엇입니까? –

답변

3

웹 서버는 일반적으로 파이썬 사용을 구성하는 방법이 있습니다. 환경 변수, 경로 등을 설정할 수 있습니다. 이 도구를 사용하여 virtualenv를 가리 킵니다.

예를 들어, 내 아파치의 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 파일이 : 당신이 생산에 장고와 VIRTUALENV를 사용하려면

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() 
+0

쿨, 고마워. virtualenv를 사용하기 위해 내 wsgi 서버를 구성하는 방법을 조사해야합니다. –

+0

mod_wsgi에 대한 자세한 내용은 http://code.google.com/p/modwsgi/wiki/VirtualEnvironments를 참조하십시오. –

1

또는 심지어 스테이징 환경이라면 환경을 활성화 할 것을 기대할 수 있습니다. 수동으로 수행할지 또는 예를 들어 사용하는지에 따라 다릅니다. virtualenvwrapper, 적절한 환경 변수를 설정하십시오. 장고를 가상 환경에 설치하고 사용하지 않는다면 어떤 목적을 가지고 있는지 확실하지 않습니다.

그런데 내가 보았 듯이 관련 질문 Django and VirtualEnv Development/Deployment Best Practices이 사이드 바에 표시됩니다. 이것은 귀하의 설정과 관련이있는 것 같습니다.

관련 문제