2013-07-29 11 views
11

Sto configurando uwsgi seguendo questo tutorial: https://uwsgi.readthedocs.org/en/latest/tutorials/Django_and_nginx.html. Corro pip install uwsgi all'interno virtualenv, ma ottengo il problema come segue:Il codec 'ascii' non può decodificare l'errore quando si utilizza pip per installare 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) 

Sembra un problema di decodifica, ma come risolvere questo? Il mio ambiente di sistema è:

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

Avviso: la risposta a questo problema potrebbe essere diverso a causa di diversi ambienti operativi. I commenti dei Twil effettivamente risolto il problema in OS X.

+5

indovina provare a eseguire 'LC_ALL = C pip installare uwsgi' – twil

+0

@twil sembra risolvere il decodifica l'errore, ma cambia in un altro errore. Pensi che questo sia un errore completamente diverso? Comando/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-externally-managed --record /tmp/pip-hMl7E8-record/install-record.txt --install-headers/home/timyitong/superleagues/lib/include fallito con codice di errore 1 –

+0

Sì, sembra un problema completamente diverso. Su quale piattaforma stai installando? Ho appena installato 'uwsgi' su virtualenv nella mia Ubuntu 13.04 senza problemi. – twil

risposta

16

Provare a installare prima libevent-devel e python-devel

yum install libevent-devel python-devel 

e quindi l'installazione di

pip install uwsgi 
+0

Necessario riavviare il server dopo aver installato questi. – Kof

+0

Per quelli con Ubuntu o Debian i pacchetti sono 'sudo apt-get libevent-dev python-dev' – EbilGenius

+3

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

17

E 'una domanda ha chiesto un anno fa? Vengo qui da Google. Ho notato che il richiedente è cinese, come me. Quindi, forse affrontiamo lo stesso problema. Oh, scusa per il mio pessimo inglese!

HO TROVATO LA GIUSTA RISPOSTA!

È perché quando Python installa alcuni pacchetti, controllerà il registro di Windows, alcuni software cinesi come Aliwangwang importano il valore 'gbk' in HKEY_CLASSES_ROOT. Quindi Python non funziona.

può essere risolto in questo modo:

aprire C: \ Python27 \ Lib \ mimetypes.py con Notepad ++ o altro editor, quindi cercare la riga "default_encoding = sys.getdefaultencoding()". aggiungere codici alla riga precedente in questo modo: soluzione

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

C'è un altro modo, basta passare l'eccezione UnicodeError invece di passando solo UnicodeEncodeError per ctype = ctype.encode (default_encoding) in $ Python/Lib/mimetypes.py: 249 – hylepo

+0

@hugleecool, genio! –

0

di hugleecool è buona. Un altro modo per risolverlo è trovare il Pannello di controllo e cambiare il linguaggio del programma non Unicode del sistema.

Per il sistema cinese, penso che il valore predefinito sia il cinese, è possibile cambiarlo in inglese e risolverà tutti i problemi di decodifica simili.

4

Ho avuto lo stesso problema. Nel mio caso, in cima ai suggerimenti di cui sopra ho dovuto correre:

sudo apt-get install build-essential 
4

Verificare di aver installato python-dev

Problemi correlati