【问题标题】:mod-wsgi uses wrong version of pythonmod-wsgi 使用错误版本的 python
【发布时间】:2015-01-12 22:42:33
【问题描述】:

我正在尝试使用 Apache 和 mod WSGI 设置 Django 站点。 在管理站点上打开某些页面时出现错误

'ascii' 编解码器无法对位置 0-7 中的字符进行编码:序数不在 范围(128)

来自错误屏幕的更多详细信息:

Django Version:     1.7.1
Exception Type:     UnicodeEncodeError
Exception Value: 'ascii' codec can't encode characters in position 0-7: ordinal not in range(128)
Exception Location:     /var/www/.virtualenvs/tankienv/lib/python3.4/site-packages/django/utils/encoding.py in force_text, line 87
Python Executable:  /usr/bin/python

似乎 mod-wsgi 使用 python 2.7 而不是 python 3。 我该如何解决这个问题?

当我尝试将正确 python 可执行文件的路径添加到 apache2.conf 时

WSGIPythonHome /var/www/.virtualenvs/myprojectenv/bin

网站停止响应。

【问题讨论】:

  • 它正在使用 python3.4(参见异常位置)。问题在于您的编码,而不是 python 版本
  • 不,它只是从那里获取额外的库。并使用了 Python 2.7。 (对不起,我从错误屏幕中跳过了这一行)

标签: django apache mod-wsgi


【解决方案1】:

需要安装python3的mod-wsgi版本。

我已经在我的 Ubuntu 13.04 中运行了这些命令来纠正这个问题

sudo apt-get remove libapache2-mod-wsgi
sudo apt-get install libapache2-mod-wsgi-py3 

【讨论】:

    猜你喜欢
    • 2015-11-17
    • 2015-02-10
    • 2012-05-04
    • 1970-01-01
    • 1970-01-01
    • 2012-02-16
    • 2013-08-27
    • 1970-01-01
    • 2018-05-07
    相关资源
    最近更新 更多