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

34,358

Solution 1

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()

Solution 2

Try installing first libevent-devel and python-devel

yum install libevent-devel python-devel

and then installing

pip install uwsgi

Solution 3

Check that you have installed python-dev

Solution 4

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

sudo apt-get install build-essential
Share:
34,358
Yitong Zhou
Author by

Yitong Zhou

Loves coding.

Updated on July 09, 2022

Comments

  • Yitong Zhou
    Yitong Zhou almost 2 years

    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.