Должен ли я использовать 32-битный Python или 64-битный Python

144

У меня 64-битная установка win7. Должен ли я использовать Python 64bit? В чем разница между 32-битной и 64-битной версиями Python? Поддерживают ли разные пакеты Python (например, south, django, mysqldb и т. Д.) Только 32/64-битные?

Джонатан
источник
2
Связанный stackoverflow.com/q/4567856/460775
EMBarbosa

Ответы:

94

64-разрядная версия позволит одному процессу использовать больше ОЗУ, чем 32-разрядная, однако вы можете обнаружить, что объем памяти удваивается в зависимости от того, что вы храните в ОЗУ (в частности, целые числа).

Например, если вашему приложению требуется> 2 ГБ ОЗУ, поэтому вы переключаетесь с 32-битной на 64-битную, вы можете обнаружить, что вашему приложению теперь требуется> 4 ГБ ОЗУ.

Проверьте, доступны ли все ваши сторонние модули в 64-битной версии, в противном случае, возможно, будет проще пока придерживаться 32-битной версии.

Джон Ла Рой
источник
13
Afaik, для MysqlDB нет 64-битных двоичных файлов - поэтому я придерживаюсь 32-битного Python.
Йохен Ритцель
12
Действительно ли сторонние модули должны явно поддерживать 64-битную версию?
Джонатан
8
Я использую 64-битный Python 2.7 в течение последних нескольких месяцев (пять лет после этого поста), и хотя я бы сказал, что оно того стоит - иметь доступ ко всей этой оперативной памяти довольно приятно, если вы не хотите тратить так много времени. управление вашими данными - все еще есть несколько библиотек, которые либо немного раздражают получение 64-битных версий, либо во многих случаях практически невозможно использовать (32-битные библиотеки DLL - один из таких примеров ресурса, который мне еще не удалось использовать без загрузка 32-разрядной версии Python)
Даррен Рингер,
12
Есть и обратное: тензорный поток доступен только для 64-битного питона в Windows, за исключением случаев, когда вы хотите его построить.
TrakJohnson
30

По моему опыту, использование 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.
Ронан Пайшао
источник
если вы используете тензорный поток, вам нужен 64-битный питон
KetZoomer
6

Вам не нужно использовать 64-битную версию, поскольку Windows будет эмулировать 32-битные программы с использованием wow64. Но использование собственной версии (64-битной) даст вам больше производительности.

codymanix
источник
5

Используйте 64-битную версию только в том случае, если вам нужно работать с большими объемами данных, в этом сценарии 64-битная версия работает лучше с неудобствами, которые, как сказал Джон Ла Рой; если нет, придерживайтесь 32 бита.

Ариэль Хименес
источник
3

У меня были проблемы с запуском приложения python (с большими фреймами данных) в 32 - получил сообщение MemoryError, в то время как на 64 он работал нормально.

АлКо
источник
1

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

H_J
источник