使用pip安装uwsgi时,'ascii'编解码器无法解码错误

时间:2013-07-29 18:41:48

标签: python django uwsgi

我正在按照本教程设置uwsgi:https://uwsgi.readthedocs.org/en/latest/tutorials/Django_and_nginx.html。 我在virtualenv中运行pip install uwsgi,但问题如下:

Command /home/timyitong/superleagues/bin/python -c "import setuptools;__file__='/home/timyitong/superleagues/build/uwsgi/setup.py';exec(compile(open(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-Z9h8Jn-record/install-record.txt --single-version-externally-managed --install-headers /home/timyitong/superleagues/include/site/python2.6 failed with error code 1 in /home/timyitong/superleagues/build/uwsgi
Traceback (most recent call last):
  File "/home/timyitong/superleagues/bin/pip", line 9, in <module>
    load_entry_point('pip==1.4', 'console_scripts', 'pip')()
  File "/home/timyitong/superleagues/lib/python2.6/site-packages/pip/__init__.py", line 148, in main
    return command.main(args[1:], options)
  File "/home/timyitong/superleagues/lib/python2.6/site-packages/pip/basecommand.py", line 169, in main
    text = '\n'.join(complete_log)
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe2 in position 54: ordinal not in range(128)

这似乎是一个解码问题,但如何解决?我的系统环境是:

Ubuntu 10.04
Django==1.5.1
South==0.8.1
distribute==0.7.3
wsgiref==0.1.2

注意:由于操作环境不同,此问题的答案可能会有所不同。 Twil的评论实际上解决了我在OS X中的问题。

5 个答案:

答案 0 :(得分:17)

这是一年前提出的一个问题?我是来谷歌的。 我注意到提问者是中国人,和我一样。 所以,也许我们面临同样的问题。 哦,抱歉我的英语不好!

我已经找到了正确的答案!

这是因为当Python安装一些软件包时,会检查Windows注册表,一些像Aliwangwang这样的中文软件将'gbk'值导入HKEY_CLASSES_ROOT。所以Python不起作用。

可以这样解决:

使用Notepad ++或其他编辑器打开C:\ Python27 \ Lib \ mimetypes.py,然后搜索“default_encoding = sys.getdefaultencoding()”行。 将代码添加到上面的行中,如下所示:

if sys.getdefaultencoding() != 'gbk':
    reload(sys)
    sys.setdefaultencoding('gbk')
    default_encoding = sys.getdefaultencoding()

答案 1 :(得分:16)

尝试安装第一个libevent-devel和python-devel

yum install libevent-devel python-devel

然后安装

pip install uwsgi

答案 2 :(得分:4)

我遇到了同样的问题。就我而言,除了上述建议之外,我还得运行:

sudo apt-get install build-essential

答案 3 :(得分:4)

检查您是否已安装python-dev

答案 4 :(得分:0)

hugleecool的解决方案很好。解决此问题的另一种方法是找到控制面板并更改系统的非Unicode程序的语言。

对于中文系统,我认为默认值是中文,你可以把它改成英文,它会解决所有类似的解码问题。