2013-07-29 7 views
11

Przygotowuję uwsgi po tym kursie: https://uwsgi.readthedocs.org/en/latest/tutorials/Django_and_nginx.html. biegnę pip install uwsgi ciągu virtualenv, ale dostać ten problem następująco:Kodek "ascii" nie może odkodować błędu, gdy użyje PIP do zainstalowania 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) 

Wydaje się, że problem dekodowania, ale jak rozwiązać to? Moje środowisko systemu jest:

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

Wskazówka: odpowiedzią na ten problem może się różnić z powodu różnych środowiskach operacyjnych. Uwagi Twil rzeczywiście rozwiązać mój problem w OS X.

+5

zgadnij spróbuj uruchomić 'LC_ALL = C pip zainstalować uwsgi' – twil

+0

@twil wydaje się rozwiązać błąd dekodowania, ale zmienia się na inny błąd. Czy uważasz, że jest to zupełnie inny błąd? Polecenie/usr/bin/python -c "import setuptools; __file __ = '/ home/timyitong/superleague/build/uwsgi/setup.py'; execfile ('/ home/timyitong/superleagues/build/uwsgi/setup.py') "instalacja - pojedyncza-wersja-zewnętrznie zarządzana --record /tmp/pip-hMl7E8-record/install-record.txt --install-headers/home/timyitong/superleague/lib/include nie powiodła się z kodem błędu 1 –

+0

Tak, wygląda na zupełnie inny problem. Na jakiej platformie instalujesz? Właśnie zainstalowałem 'uwsgi' na virtualenv w moim Ubuntu 13.04 bez żadnych problemów. – twil

Odpowiedz

16

Spróbuj zainstalować pierwszy libevent-devel i python-devel

yum install libevent-devel python-devel 

a następnie zainstalowanie

pip install uwsgi 
+0

Potrzebny do ponownego uruchomienia serwera po zainstalowaniu tych. – Kof

+0

Dla tych, którzy mają Ubuntu lub Debiana, pakiety to "sudo apt-get libevent-dev python-dev" – EbilGenius

+3

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

17

To pytanie zadawane rok temu? Przychodzę tu przez Google. Zauważyłem, że pytający jest Chińczykiem, tak jak ja. Więc, może stoimy w obliczu tego samego problemu. Och, przepraszam za mój zły angielski!

ZNAJDŁO ODPOWIEDNIĄ PRAWIDŁOWĄ ODPOWIEDŹ!

To dlatego, że gdy Python instaluje niektóre pakiety, sprawdza rejestr systemu Windows, niektóre chińskie oprogramowanie, takie jak Aliwangwang, importuje wartość "gbk" do HKEY_CLASSES_ROOT. Tak więc Python nie działa.

to można rozwiązać w ten sposób:

otwarte C: \ Python27 \ lib \ mimetypes.py w notatniku ++ lub inny edytor, a następnie przeszukiwać linię "default_encoding = sys.getdefaultencoding()". dodać kody do linii powyżej tak: rozwiązanie

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

Jest jeszcze inny sposób, po prostu przekazuj wyjątek UnicodeError zamiast przekazywanie tylko UnicodeEncodeError dla ctype = ctype.encode (default_encoding) w $ Python/Lib/mimetypes.py: 249 – hylepo

+0

@hugleecool, geniuszu! –

0

hugleecool jest dobra. Innym sposobem rozwiązania tego problemu jest znalezienie Panelu sterowania i zmiana języka programu w Unicode.

Dla chińskiego systemu, domyślną wartością jest chiński, można go zmienić na angielski i rozwiąże on wszystkie podobne problemy z dekodowaniem.

4

Miałem ten sam problem. W moim przypadku, na szczycie powyższych sugestii musiałem uruchomić:

sudo apt-get install build-essential 
4

Sprawdź, czy masz zainstalowaną python-dev

Powiązane problemy