简体   繁体   中英

'ascii' codec can't decode error when use pip to install uwsgi

I am setting up uwsgi following this tutorial: https://uwsgi.readthedocs.org/en/latest/tutorials/Django_and_nginx.html . I run pip install uwsgi within virtualenv, but get the problem as follows:

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)

It seems like a decoding problem, but how to resolve that? My system environment is:

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

Notice: the answer to this problem might differ due to different operating environments. The comments of Twil actually solved my problem in OS X.

It's a question asked a year ago? I come here by Google. I notice that the asker is Chinese, same as me. So, maybe we face the same problem. Oh, sorry for my bad English!

I HAVE FOUND THE RIGHT ANSWER!

It is because when Python installs some packages, it will check the Windows Registry, some Chinese software like Aliwangwang import 'gbk' value to the HKEY_CLASSES_ROOT. So Python doesn't work.

It can be solved like this:

open C:\\Python27\\Lib\\ mimetypes.py with Notepad ++ or other editor, then search the line " default_encoding = sys.getdefaultencoding()". add codes to the line above like this:

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

Try installing first libevent-devel and python-devel

yum install libevent-devel python-devel

and then installing

pip install uwsgi

I had the same problem. In my case, on top of the above suggestions I had to run:

sudo apt-get install build-essential

检查您是否安装了python-dev

hugleecool's solution is good. Another way to solve this is to find Control Panel and change the system's non Unicode program's language.

For Chinese system, i think the default value is Chinese, you could change it to English and it will solve all the similar decode problems.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM