ImportError: ไม่มีโมดูลชื่อ builtins


8

ฉันกำลังแปลงแอพพลิเคชั่นไพ ธ อนของฉันจากไพ ธ อน 2 เป็นไพ ธ อน 3 เนื่องจากไพ ธ อน -3 มียูทิลิตี้2to3ที่จะแปลงโค้ดไพ ธ อน -2 เป็นไพ ธ อน -3 import builtins ให้ข้อผิดพลาดเป็น

ImportError: No module named builtins

มีความคิดที่จะแก้ไขปัญหานี้หรือไม่?

คำตอบ:


11

futureแก้ไขข้อผิดพลาดที่คล้ายกันในสถานการณ์ที่แยกจากกันโดยการติดตั้งแพคเกจ

sudo pip install future

มันไม่ชัดเจนหากเกิดข้อผิดพลาดของคุณเมื่อเรียกใช้ 2to3 หรือเมื่อพยายามเรียกใช้รหัสผลลัพธ์ ถ้าเป็นเมื่อทำงาน 2to3 มันก็อาจเป็นเพราะมันใช้จริงpython2(ค่าเริ่มต้น) และดังนั้นหากคุณไม่ได้ติดตั้งfuture, builtinsจะหายไป ในทำนองเดียวกันหากคุณพยายามเรียกใช้โค้ดผลลัพธ์ด้วยpython2ข้อผิดพลาดเดียวกันอาจเกิดขึ้น


2

2to3เครื่องมือสร้างรหัสที่เข้ากันได้กับงูหลาม 3 เท่านั้น

คุณอาจเห็นว่าเป็นเพราะคุณกำลังเรียกใช้รหัสที่แปลงใน Python 2

หากคุณต้องการให้โค้ดของคุณทำงานร่วมกับ Python 2 และ 3 ได้คุณสามารถทำได้ดังนี้:

try:
    import builtins
except ImportError:
    import __builtin__ as builtins
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.