1 มกราคม 2558

Published 1/01/2558 by with 0 comment

แปลงโค้ดจาก Python 3 ไปยัง Python 2 ด้วย 3to2

  สวัสดีวันปีใหม่ครับ หลังจากที่ผมออกบทความ "แปลงโค้ดจาก Python 2 ไปยัง Python 3 ด้วย 2to3" เลยเกิดคำถามว่า หากเรามีความจำเป็นต้องใช้ Python 2 เราจะแปลงโค้ดจาก Python 3 กลับเป็น Python 2 ได้ยังไง บทความนี้จะพาผู้อ่านไปแปลงโค้ดจาก Python 3 ไปยัง Python 2 ด้วย "3to2" ครับ
 3to2 เป็นเครื่องมือหนึ่งสำหรับใช้ Port โค้ด Python 3 กลับเป็น Python 2 เกิดขึ้นจากงาน PyCon 2009 นักพัฒนาที่ชื่อว่า Joe Amenta ต้องการให้แปลงโค้ดจาก Python 3 กลับเป็น Python 2 ครับ รองรับทั้งใน Python 2 (Python 2.6 - 2.7) และ Python 3 โดยชื่อโมดูลจะไม่เหมือนกัน แต่เวลาเรียกใช้เหมือนกันครับ
สำหรับ Python 3 ชื่อ 3to2_py3k
สำหรับ Python 2 (Python 2.7) ชื่อ 3to2
ในการติดตั้งใช้คำสั่ง pip ด้วยคำสั่ง :
pip install 3to2_py3k
หรือสำหรับใน Python 2 :
pip install 3to2
หรือจะโหลดมาติดตั้งเองจาก PyPI : 3to2
ในการใช้งาน ใช้คำสั่ง
3to2 โค้ดที่ต้องการแปลง.py
สำหรับใน Windows ใช้คำสั่ง
python.exe C:\Python**\Scripts\3to2 โค้ดที่ต้องการแปลง.py
ตรง ** คือ เลขรุ่นของ Python เช่น ผมใช้ Python 3.4 เป็นเลข 34 ครับ
หากต้องการสำรองไฟล์เก่าไว้ใช้คำสั่ง
3to2 โค้ดที่ต้องการแปลง.py -W
ตัวอย่างการแปลงโค้ดจาก Python 3 ไปยัง Python 2 ด้วย 3to2
โค้ดไฟล์ py3.py
def greet(name):
    print("Hello, {0}!".format(name))
print("What's your name?")
name = input()
greet(name)
ผมใช้คำสั่ง
3to2 py3.py -W
ผลลัพธ์

ไฟล์ py3.py
def greet(name):
    print u"Hello, {0}!".format(name)
print u"What's your name?"
name = raw_input()
greet(name)
ไฟล์ py3.py.bak
def greet(name):
    print("Hello, {0}!".format(name))
print("What's your name?")
name = input()
greet(name)

ดูรายละอียดเพิ่มเติมได้ที่ http://www.startcodon.com/wordpress/category/3to2/
ติดตามบทความต่อไปนะครับ
ขอบคุณครับ

0 ความคิดเห็น:

แสดงความคิดเห็น

แสดงความคิดเห็นได้ครับ :)