【发布时间】:2014-09-28 23:12:27
【问题描述】:
我有带有 python 2.7.3 和任何站点包的 virtualenv。 在此服务器上 - python 2.6.6。我需要 python 2.7.3 作为主解释器
wsgi.py 文件:
import os
import sys
import site
# Add the site-packages of the chosen virtualenv to work with
site.addsitedir('/home/aaodegov/virtual_envs/basic_env_2/lib/python2.7/site-packages')
# Add the app's directory to the PYTHONPATH
sys.path.append('/var/www/mts_report/mts_report_project')
sys.path.append('/var/www/mts_report/mts_report_project/mts_report_project')
os.environ['DJANGO_SETTINGS_MODULE'] = 'mts_report_project.settings.local'
# Activate your virtual env
activate_env="/home/aaodegov/virtual_envs/basic_env_2/bin/activate_this.py"
execfile(activate_env, dict(__file__=activate_env))
import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()
apache 配置:
<VirtualHost *:80>
ServerAdmin mail
ServerName server_name
ServerAlias alias_name
DocumentRoot /var/www/mts_report/mts_report_project
WSGIDaemonProcess mts_report processes=1 maximum-requests=1 threads=1 python-path=/home/aaodegov/virtual_envs/basic_env_2/lib/python2.7:/home/aaodegov/virtual_envs/basic_env_2/lib/python2.7/site-packages
WSGIProcessGroup mts_report
WSGIScriptAlias / var/www/mts_report/mts_report_project/wsgi.py
Alias /static/ /var/www/mts_report/mts_report_project/static/
Alias /home/aaodegov/virtual_envs/basic_env_2/lib/python2.7/site-packages/admin/media/
<Directory /var/www/mts_report/mts_report_project>
Options +Indexes
allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/servicescripts_error.log
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/servicescripts_access.log combined
<Location "/static/">
Options -Indexes
</Location>
</VirtualHost>
检查python版本(在调试django模式下):
Python Executable: /usr/bin/python
Python Version: 2.6.6
Python Path:
['/home/aaodegov/virtual_envs/basic_env_2/lib/python2.7',
'/home/aaodegov/virtual_envs/basic_env_2/lib/python2.7/site-packages',
'/usr/local/lib/python2.6/dist-packages/pip-1.5.6-py2.6.egg',
'/usr/lib/python2.6',
'/usr/lib/python2.6/plat-linux2',
'/usr/lib/python2.6/lib-tk',
'/usr/lib/python2.6/lib-old',
'/usr/lib/python2.6/lib-dynload',
'/usr/local/lib/python2.6/dist-packages',
'/usr/lib/python2.6/dist-packages',
'/usr/lib/pymodules/python2.6',
'/var/www/mts_report/mts_report_project',
'/var/www/mts_report/mts_report_project/mts_report_project']
因此,Django 使用来自 virtualenv 的站点包,但主解释器 - 来自系统。 如何使用 virtualenv 的解释器(2.7.3)? 谢谢。
【问题讨论】:
标签: python django apache virtualenv wsgi