ปัญหาการใช้ Python 3.6 บน Windows 10

หลังจากติดตั้ง Python 3.6 บน Windows 10 และทดลองใช้งานก็พบปัญหาเล็กๆน้อยๆอยู่หลายอย่าง ผมจึงเขียนโพสต์นี้เผื่อบางท่านพบปัญหาการใช้งานแบบเดียวกัน อาจจะพอนำไปเป็นแนวทางในการแก้ไขได้ โปรแกรมตัวอย่างที่ผมเรียกใช้งานมีดังนี้ครับ

#!/usr/bin/env python3
from json import load
import urllib.request
myip=load(urllib.request.urlopen('http://jsonip.com'))['ip']
print ('Your WAN IP is - ',myip)

 

อธิบายการทำงานคร่าวๆคือ ปรกติเราจะได้รับหมายเลข IP จากผู้ให้บริการอินเตอร์เน็ต เช่น 3BB หรือ TOT โดยที่ IP จะเปลี่ยนไปเรื่อยๆตามระยะเวลาที่ผู้ให้บริการกำหนด ซึ่งผมขอเรียกว่า WAN IP โดยผมต้องการทราบหมายเลข WAN IP นี้เพื่อนำไปใช้งานบางอย่าง จึงเขียนคำสั่งในภาษา Python ตามโค้ดโปรแกรมด้านบน แต่เมื่อสั่ง Run โปรแกรมก็พบข้อผิดพลาดดังนี้

D:\Python3>wan-ip.py
C:\Program Files\Python36\python.exe: can't open file 'D:\Python3\wan-ip.py': [Errno 13] Permission denied

ซึ่งบนลีนุกซ์มิ้นท์สามารถเรียกโปรแกรมโดยตรงได้ พยายามหาข้อผิดพลาดอยู่นาน ทดลองลบโปรแกรม Python แล้วติดตั้งใหม่อยู่หลายรอบก็ไม่ผ่าน เปลี่ยนเวอร์ชันไปทดลอง Python 2.7 ก็อาการหนักกว่าเดิม สุดท้ายมาพบวิธีแก้ปัญหาแบบบ้านๆคือ หากพบข้อผิดพลาดที่เกี่ยวกับ Permission denied ก็ไปสั่ง Run บน Windows PowerShell ในโหมด Administrator แล้วจึงกลับมาสั่ง Run บน Command Prompt ตามปรกติ ส่วนการเปิดโปรแกรม Administrator: Windows PowerShell ก็คลิกขวาที่ไอคอน Windows ซ้ายมือด้านล่างจากนั้นเลือก Windows PowerShell (Admin)

สั่ง Run โปรแกรม wan-ip.py ที่ Windows PowerShell ก่อน

จากนั้นค่อยกลับไป Run บน Command Prompt ตามปรกติ (คลิกที่รูปภาพเพื่อขยาย)

หรืออีกวิธีที่ใช้หลบหลีกข้อผิดพลาดนี้ คือเรียก python นำหน้าโปรแกรมที่เราต้องการ Run

D:\Python3>python wan-ip.py

ส่วนการติดตั้ง Library  เพิ่มก็เช่นกัน ผมใช้วิธีติดตั้งบน Windows PowerShell เพราะพยายามติดตั้งบน Command Prompt แล้วไม่ผ่านสักที

Leave a Reply

Your email address will not be published. Required fields are marked *