Почему установщик Python 2.7 AMD 64, кажется, запускает 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-битном режиме?

2 ответа

Решение

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

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

На моем 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 просто long в любом случае, но если вы сможете выделить более трех гигабайт памяти, вы все равно будете пользоваться преимуществами 64-битного исполнения.

Другие вопросы по тегам