Почему установщик AMD 64 Python 2.7, кажется, запускает Python в режиме на 32 бита?

Я установил Python 2.7 от пакета python-2.7.amd64.msi из python.org. Это устанавливает и работает правильно, но, кажется, находится в 32-разрядном режиме, несмотря на то, что установщик был установщиком на 64 бита.

Python 2.7 (r27:82525, Jul  4 2010, 07:43:08) [MSC v.1500 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys, platform
>>> platform.architecture()
('64bit', 'WindowsPE')
>>> sys.maxint
2147483647

Что я могу сделать для установки Python так, чтобы он на самом деле работал в 64-разрядном режиме?

6
задан Bryan Catanzaro 5 August 2010 в 01:13
поделиться

2 ответа

См. Обсуждение здесь . Это от 2.6.1, но, похоже, все еще актуально. По крайней мере, я нигде не видел доказательств обратного. Суть дела (цитируется по этой ссылке):

Это сделано намеренно. В своей бесконечной мудрости Microsoft решила сделайте 'длинный' тип C всегда 32-битным целым числом со знаком - даже на 64-битном системы. В большинстве систем Unix long не менее 32 бит, но обычно sizeof (ptr).

12
ответ дан 8 December 2019 в 15:58
поделиться

На моем x86-64 Linux:

$ python
Python 2.6.5 (r265:79063, Apr 16 2010, 13:57:41)
[GCC 4.4.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys, platform
>>> platform.architecture()
('64bit', 'ELF')
>>> sys.maxint
9223372036854775807

Конечно, важнее целочисленного размера то, сколько памяти вы можете выделить. Возможно, ваши меньшие целые числа на самом деле не будут иметь большого значения, поскольку Python просто продвинется до длинных в любом случае, но если вы можете выделить более трех гигабайт памяти, вы все равно будете пользоваться преимуществами 64 битовое исполнение.

3
ответ дан 8 December 2019 в 15:58
поделиться
Другие вопросы по тегам:

Похожие вопросы: