27 Eylül 2014 Cumartesi

Python - "UnicodeDecodeError: 'ascii' codec can't decode" Hatası ve Çözümü

    Windows sistemlere python için harici modül kurulurken kolaylık açısından pip kullanılır -pip install modulName-
Bunun dışında indirilen paketlerden de setup dosyası aracılığıyla kurulabilir -python setup.py install-
Bu yazıda her iki yöntemde kullanılarak kurulmak istenen modüller için karşılaşılan bir hatanın çözümü anlatılacaktır.
Çözüm için bayağı uğraşmak zorunda kalmıştım nihayetinde çözümü çekik gözlü bir abimizin sitesinde buldum. Araştırmalar sırasında herhangi bir Türkçe kaynağa rastlayamadım. Belki bu yazı benden sonrakiler için derman olur.

Hatayı araştırırken son satırda yer alan "UnicodeDecodeError: 'ascii' codec can't decode byte 0xf6 in position 2: ordinal not in range(128)" dan yola çıkmıştım.
En nihayetinde çözüm şu şekilde olacaktır.
  • Python kurulu olduğu ana dizinde yer alan Lib klasörünün içerisindeki mimetypes.py dosyasının 256. satırında yer alan 
     default_encoding = sys.getdefaultencoding() statement'ın üstüne aşağıdaki 3 satırı yapıştırın.
  • if sys.getdefaultencoding() != 'gbk':
             reload(sys)
             sys.setdefaultencoding('gbk')
  • pip install mechanize veya python setup.py install hangi yöntemle modülü yüklemeye çalışıyorsanız devam edebilirsiniz.
Burada yer alan 'gbk' encoding tipini utf-8 ile yer değiştirdiğimde tekrardan aynı hatayı alıyordum fakat gbk işi sorunsuz halletmiştir.

Hiç yorum yok:

Yorum Gönder