2013-07-29 73 views
11

我正在按照本教程设置uwsgi:https://uwsgi.readthedocs.org/en/latest/tutorials/Django_and_nginx.html。 我跑的virtualenv内pip install uwsgi,但得到如下问题:'ascii'编解码器在使用pip安装时无法解码错误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

只是猜测尝试运行'LC_ALL = C PIP安装uwsgi' – twil

+0

@twil似乎解决解码错误,但它更改为另一个错误。你认为这是一个完全不同的错误?命令/ usr/bin/python -c“import setuptools; __file __ ='/ home/timyitong/superleagues/build/uwsgi/setup.py'; execfile('/ home/timyitong/superleagues/build/uwsgi/setup.py' )“install --single-version -external-managed --record /tmp/pip-hMl7E8-record/install-record.txt --install-headers/home/timyitong/superleagues/lib/include失败,错误代码为1 –

+0

是的,它看起来像完全不同的问题。你正在安装什么平台?我刚刚在Ubuntu 13.04中安装了'uwsgi'到virtualenv,没有任何问题。 – twil

回答

16

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

yum install libevent-devel python-devel 

,然后在安装

pip install uwsgi 
+0

安装这些服务器后需要重新启动服务器。 – Kof

+0

对于那些与Ubuntu或Debian的软件包'sudo apt-get libevent-dev python-dev' – EbilGenius

+3

'sudo apt-get install libevent-dev python-dev';) – j6m8

17

这是一个问题,问了一年前?我由Google来到这里。 我注意到提问者是中国人,和我一样。 所以,也许我们面临同样的问题。噢,对不起我的英文不好!

我发现了正确的答案!

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

它可以解决这样的:

开放C:\ Python27 \ LIB \ mimetypes.py与记事本++或其他编辑器,则查询的线 “default_encoding = sys.getdefaultencoding()”。 添加代码行上述这样的:

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

还有另一种方法,只是通过UnicodeError异常而不是在$ Python/Lib/mimetypes.py中只传递ctype = ctype.encode(default_encoding)的UnicodeEncodeError:249 – hylepo

+0

@hugleecool,天才! –

0

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

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

4

我有同样的问题。在我的情况下,对上述建议顶部我不得不跑:

sudo apt-get install build-essential 
4

检查您是否已经安装python-dev

相关问题