Чи варто використовувати Python 32bit або Python 64bit


143

У мене 64-бітна установка win7. Потрібно використовувати Python 64bit? Які різниці між 32-бітовою та 64-бітовою версіями Python? Чи підтримують різні пакети Python (наприклад, південь, django, mysqldb тощо) лише 32-біт / 64 біт?


Відповіді:


91

64-розрядна версія дозволить одному процесу використовувати більше оперативної пам’яті, ніж 32-бітну, однак ви можете виявити, що слід пам’яті збільшується вдвічі залежно від того, що ви зберігаєте в оперативній пам’яті (зокрема Integers).

Наприклад, якщо вашому додатку потрібно> 2 Гб оперативної пам’яті, тож ви переходите з 32 біт на 64 біт, ви можете виявити, що ваш додаток вимагає> 4 Гб оперативної пам’яті.

Перевірте, чи всі ваші сторонні модулі доступні в 64 бітах, інакше тим часом може бути простіше дотримуватися 32-бітових


13
Афаік, для MysqlDB не існує 64-бітових бінарних файлів - ось чому я дотримуюся 32-бітного Python.
Jochen Ritzel

12
Чи дійсно потрібно стороннім модулям явно підтримувати 64-бітну версію?
Джонатан

8
Я використовую 64bit Python 2.7 протягом останніх кількох місяців (через п’ять років після цієї посади), і хоча я б сказав, що це, безумовно, варто - мати доступ до всієї цієї ОЗУ дуже приємно, якщо ви не хочете витрачати стільки часу управління вашими даними - все ще є кілька бібліотек, які або трохи дратують отримати 64-бітні версії, або в багатьох випадках майже неможливі у використанні (32-розрядні DLL-файли - один із таких прикладів ресурсу, на який я ще не встиг використати завантаження 32-розрядної версії Python)
Даррен Рінгер

12
Існує і навпаки: tensorflow доступний лише для 64-бітового пітона на Windows, за винятком випадків, якщо ви хочете його створити.
TrakJohnson

28

На мій досвід, використання 32-бітної версії є більш безпроблемним. Якщо ви не працюєте над додатками, які активно використовують пам'ять (переважно наукові обчислення, що використовують більше 2 Гб пам'яті), вам краще використовувати 32-бітні версії, оскільки:

  1. Зазвичай ви використовуєте менше пам'яті.
  2. У вас менше проблем із використанням COM (оскільки ви перебуваєте в Windows).
  3. Якщо вам доведеться завантажити DLL-файли, вони, швидше за все, також 32-розрядні. 64-розрядна програма Python не може завантажити 32-розрядні бібліотеки без важких хаків, які запускають інший Python, на цей раз у 32-розрядному і використовуючи IPC.
  4. Якщо вам доведеться завантажувати файли DLL, які ви збираєте самостійно, вам доведеться зібрати їх у 64-розрядні, що зазвичай зробити складніше (особливо якщо використовується MinGW в Windows).
  5. Якщо ви коли-небудь використовуєте PyInstaller або py2exe, ці інструменти будуть генерувати виконувані файли з тим самим бітом вашого інтерпретатора Python.

6

Вам не потрібно використовувати 64-бітну, оскільки Windows буде імітувати 32-бітні програми за допомогою wow64. Але використання рідної версії (64 біт) дасть вам більше продуктивності.


4

Використовуйте 64-бітну версію лише в тому випадку, якщо вам доведеться працювати з великими обсягами даних, у цьому сценарії 64-бітові показники працюють краще за незручне, про яке сказав Джон Ла Рой; якщо ні, дотримуйтесь 32 біти.


2

У мене виникли проблеми із запуском програми python (запуск великих фреймів даних) у 32 - отримали повідомлення MemoryError, тоді як на 64 він працював чудово.


0

Пакети машинного навчання, такі як tensorflow 2.x, розроблені для роботи лише на 64-бітному Python, оскільки вони мають велику кількість пам'яті.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.