2013-07-29 97 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

相關問題