11 Eylül 2016 Pazar

-git ascii codec decode sorunu ve çözümü-

Merhaba,
Bu kısa makalemde "git" ile kaynak kod çekerken python ile ilgili yaşanan "ascii" codec sorunu ve çözümüne açıklık getirmeye çalışacağım.
Detaylara aşağıda yer verilmiştir.

Problem:
"git" ile android kaynak kodları indirirken python "ascii" codec problemi yaşadım.

Burada problemin kaynağı repo ile ilgilidir. Dolayısıyla "git" kullanılarak yapılan işlemlerde bu problemin yaşanması muhtemeldir.
Ancak sisteminizde yüklü python sürümünde "sitecustomize.py" içerisinde "ascii" yerine "utf8" yer alıyorsa bu problem ortaya çıkmayacaktır.
Aşağıda yaşadığım problem yer almaktadır. 

git komutu çıktısı:
...
...
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 17: ordinal not in range(128)


Çözümü:
$ cat /etc/python2.7/sitecustomize.py

Sisteminizde yüklü olan python sürüm-sürümlerine ait "sitecustomize.py" dosya içeriklerini aşağıdaki şekilde düzenleyiniz.  Sadece default olarak kullanılan python sürümüne ait dosyayı düzenlemek yeterlidir.
NOT: sisteminizde python yüklü dizin yolu farklılık gösterebilir. 
Benim sisteminde python "usr/lib" dizini altında bulunuyor. Ancak "sitecustomize.py"  dosyasına ait kısayol "etc/pythonx.x" dizininde yer almaktadır. Her iki yerden de değiştirilebilir.

aşağıdaki kodları ekleyin:
# encoding=utf8  
import sys  
reload(sys)  
sys.setdefaultencoding('utf8')

konsol penceresinden eklentiyi kontrol edelim:
$ python
Python 2.7.6 (default, Jun 22 2015, 17:58:13) 
[GCC 4.8.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys      //ekle-ENTER
>>> reload(sys)     //ekle-ENTER
<module 'sys' (built-in)>
>>> sys.getdefaultencoding() //ekle-ENTER
'utf8'  //<çıktıyı gözlemleyiniz. 
>>> 

Yukarıdaki eklentiyi yapmadan evvel 'utf8' yerine 'ascii' anahtar kelimesi yer almaktaydı.
İyi çalışmalar.

Hiç yorum yok:

Yorum Gönder