11

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

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 中的问题。

4

5 回答 5

17

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

我找到了正确的答案!

这是因为Python在安装一些包的时候会检查Windows Registry,一些中文软件比如阿里旺旺将'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()
于 2014-01-08T02:46:24.893 回答
16

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

yum install libevent-devel python-devel

然后安装

pip install uwsgi
于 2013-09-02T05:13:46.340 回答
4

我有同样的问题。就我而言,除了上述建议之外,我还必须运行:

sudo apt-get install build-essential
于 2014-11-25T20:52:07.483 回答
4

检查您是否已安装python-dev

于 2015-06-08T22:20:04.150 回答
0

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

对于中文系统,我认为默认值为中文,您可以将其更改为英文,它将解决所有类似的解码问题。

于 2014-10-28T20:29:43.423 回答