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
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 ใดๆเกิดขึ้น
ความคิดเห็น
แสดงความคิดเห็น