Skip to content

แปลงโค้ดจาก 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/
ติดตามบทความต่อไปนะครับ
ขอบคุณครับ

Published on Categories py2_py3

About wannaphong

วรรณพงษ์ ภัททิยไพบูลย์ ผู้ดูแลเว็บ wannaphong.com และผู้เขียนบทความบล็อกนี้ นักศึกษาชั้นปีที่ 1 สาขาวิทยาการคอมพิวเตอร์และสารสนเทศ คณะวิทยาศาสตร์ประยุกต์และวิศวกรรมศาสตร์ มหาวิทยาลัยขอนแก่น วิทยาเขตหนองคาย

ใส่ความเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องที่ต้องการถูกทำเครื่องหมาย *