Ananconda python แสดง LookupError: unknown encoding: 874 เมือเปิดใช้งาน

ปัญหา Python แสดงดังข้างล่าง

Traceback (most recent call last):
  File "C:\Users\hikriss\Anaconda2\lib\logging\__init__.py", line 872, in emit
    stream.write(ufs % msg)
LookupError: unknown encoding: 874
Logged from file exceptions.py, line 592
Traceback (most recent call last):
  File "C:\Users\hikriss\Anaconda2\lib\logging\__init__.py", line 872, in emit
    stream.write(ufs % msg)
LookupError: unknown encoding: 874
Logged from file exceptions.py, line 596
Traceback (most recent call last):
  File "C:\Users\hikriss\Anaconda2\lib\logging\__init__.py", line 872, in emit
    stream.write(ufs % msg)
LookupError: unknown encoding: 874
Logged from file exceptions.py, line 597
Traceback (most recent call last):
  File "C:\Users\hikriss\Anaconda2\lib\logging\__init__.py", line 872, in emit
    stream.write(ufs % msg)
LookupError: unknown encoding: 874
Logged from file exceptions.py, line 598
Traceback (most recent call last):
  File "C:\Users\hikriss\Anaconda2\lib\logging\__init__.py", line 872, in emit
    stream.write(ufs % msg)
LookupError: unknown encoding: 874
Logged from file exceptions.py, line 599

(C:\Users\hikriss\Anaconda2) C:\Users\hikriss>

ปัญหาเกิดจากการทำงานของ anaconda จะทำการเรียก C:\Users\hikriss\Anaconda2\Scripts\Activate.bat ก่อนเพื่อสร้างระบบ virtual enviroment ให้เราใช้งาน แต่การทำงานของ bat ในบรรทัดที่ 6-7 ตามข้างล่างนี้

@FOR /F "delims=" %%i IN ('@"%~dp0..\python.exe" -c "import ctypes; print(ctypes.cdll.kernel32.GetACP())"') DO @SET "PYTHONIOENCODING=%%i"
@chcp !PYTHONIOENCODING! > NUL

เป็นการพยายามเซตตัวแปร env จากค่าที่ได้รับกลับจาก GetACP() ในระบบ windows 10 ที่เซตให้เป็นภาษาไทยเป็นหลัก จะได้ค่า 874 แต่ค่านี้ไฟทอนไม่รู้จัก
ACP คือ Ansi Code Page ดูเพิ่มเติ่มได้ที่นี่

การแก้ไขง่ายๆคือเซตค่า ACP ที่ python รู้จักครับ ตามขั้นตอนต่อไปนี้
1. ไปที่ Settings รูปเป็นเฟือง จะหน้าดังนี้ จากนั้นกดที่ Time & Language

2. ในหน้า Date & time ให้กดที่ Device Manager ตามภาพ

3. กดที่ Change location
4. ที่แท็ป Administrative ให้เลือก Change system locale ในส่วนของ "Language for non-unicode programs"
5. เลือกเป็น English (United Kingdom)

6. Restart ระบบ


ทำตามข้างต้นเสร็จแล้วเข้า Anaconda python อีกครั้งจะได้ตามนี้

(C:\Users\hikriss\Anaconda2) C:\Users\hikriss>

พบว่าไม่มี Error ใดๆเกิดขึ้น

ความคิดเห็น

โพสต์ยอดนิยมจากบล็อกนี้

กู้ชีพ external harddisk

เรียนว่ายน้ำสำหรับผู้ใหญ่ วันที่ 3

เรียนว่ายน้ำสำหรับผู้ใหญ่ วันที่ 1