ฉันควรใช้ Python 32 บิตหรือ Python 64 บิต


143

ฉันมีการติดตั้ง win7 64 บิต ฉันต้องใช้ Python 64 บิตหรือไม่ อะไรคือความแตกต่างระหว่าง Python เวอร์ชัน 32 บิตและ 64 บิต แพ็คเกจ Python ที่แตกต่างกัน (เช่น south, django, mysqldb และอื่น ๆ ) รองรับเฉพาะ 32 บิต / 64 บิตหรือไม่


คำตอบ:


91

เวอร์ชัน 64 บิตจะช่วยให้กระบวนการเดียวใช้ RAM มากกว่า 32 บิตได้อย่างไรก็ตามคุณอาจพบว่าหน่วยความจำของหน่วยความจำเพิ่มขึ้นเป็นสองเท่าขึ้นอยู่กับสิ่งที่คุณเก็บไว้ใน RAM (โดยเฉพาะอย่างยิ่งจำนวนเต็ม)

ตัวอย่างเช่นหากแอปของคุณต้องการ> 2GB of RAM ดังนั้นคุณเปลี่ยนจาก 32 บิตเป็น 64 บิตคุณอาจพบว่าตอนนี้แอปของคุณต้องการ> RAM 4GB

ตรวจสอบว่าโมดูลบุคคลที่สามทั้งหมดของคุณมีให้ใน 64 บิตมิฉะนั้นอาจง่ายกว่าที่จะยึด 32 บิตในระหว่างนี้


13
ตอนนี้ไม่มีไบนารี 64 บิตสำหรับ MysqlDB นั่นคือเหตุผลที่ฉันติดกับ 32bit Python
Jochen Ritzel

12
โมดูลบุคคลที่สามจำเป็นต้องสนับสนุน 64 บิตหรือไม่
โจนาธาน

8
ฉันใช้ 64bit Python 2.7 เป็นเวลาหลายเดือนที่ผ่านมา (ห้าปีหลังจากโพสต์นี้) และถึงแม้ว่าฉันจะบอกว่ามันคุ้มค่าแน่นอน - การเข้าถึง RAM ทั้งหมดนั้นค่อนข้างดีถ้าคุณไม่ต้องการเสียเวลามาก การจัดการข้อมูลของคุณ - ยังมีห้องสมุดหลายแห่งที่น่ารำคาญเล็กน้อยที่จะได้รับรุ่น 64 บิตหรือในหลาย ๆ กรณีแทบเป็นไปไม่ได้ที่จะใช้งาน (32- บิต DLL เป็นตัวอย่างหนึ่งของทรัพยากรที่ฉันยังไม่สามารถจัดการได้ กำลังโหลด Python เวอร์ชั่น 32 บิต)
Darren Ringer

12
นอกจากนี้ยังมีสิ่งที่ตรงกันข้าม: tensorflow พร้อมใช้งานสำหรับ 64 บิต python เท่านั้นบน windows ยกเว้นว่าคุณต้องการสร้างมัน
TrakJohnson

28

จากประสบการณ์ของฉันการใช้รุ่น 32 บิตนั้นไม่มีปัญหา นอกจากว่าคุณกำลังใช้งานแอพพลิเคชั่นที่ใช้งานหน่วยความจำอย่างหนัก (โดยทั่วไปคือการคำนวณทางวิทยาศาสตร์ที่ใช้หน่วยความจำมากกว่า 2GB) คุณจะดีกว่ารุ่น 32 บิตเพราะ:

  1. โดยทั่วไปคุณใช้หน่วยความจำน้อย
  2. คุณมีปัญหาในการใช้ COM น้อยลง (เนื่องจากคุณใช้ Windows)
  3. ถ้าคุณต้องโหลด DLLs พวกเขาส่วนใหญ่อาจเป็นแบบ 32 บิต Python 64- บิตไม่สามารถโหลดไลบรารี่ 32- บิตโดยไม่มีแฮ็คจำนวนมากที่ใช้ Python อีกอันในคราวนี้เป็น 32- บิตและใช้ IPC
  4. ถ้าคุณต้องโหลด DLLs ที่คุณคอมไพล์ด้วยตัวเองคุณจะต้องคอมไพล์ไฟล์เหล่านั้นเป็น 64- บิตซึ่งโดยปกติจะทำได้ยากกว่า (โดยเฉพาะถ้าใช้ MinGW บน Windows)
  5. หากคุณเคยใช้ PyInstaller หรือ py2exe เครื่องมือเหล่านั้นจะสร้างไฟล์โปรแกรมที่มีตัวแปลภาษา Python

6

คุณไม่จำเป็นต้องใช้ 64 บิตเนื่องจาก windows จะเลียนแบบโปรแกรม 32 บิตโดยใช้ wow64 แต่การใช้เวอร์ชันเนทิฟ (64 บิต) จะทำให้คุณมีประสิทธิภาพมากขึ้น


4

ใช้รุ่น 64 บิตเฉพาะในกรณีที่คุณต้องทำงานกับข้อมูลจำนวนมากในสถานการณ์นั้น 64 บิตจะทำงานได้ดีขึ้นเมื่อไม่สะดวกที่ John La Rooy กล่าว ถ้าไม่ติดกับ 32 บิต


2

ฉันมีปัญหาในการเรียกใช้แอพหลาม (ใช้งานดาต้าเฟรมขนาดใหญ่) ใน 32 - ได้รับข้อความ MemoryError ขณะที่ 64 มันทำงานได้ดี


0

แพคเกจการเรียนรู้ของเครื่องเช่น tensorflow 2.x ได้รับการออกแบบมาเพื่อใช้งานได้กับ Python 64 บิตเท่านั้นเนื่องจากมีหน่วยความจำมาก

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