为什么Python 2.7的AMD 64安装程序似乎以32位模式运行Python?

7 投票
2 回答
10770 浏览
提问于 2025-04-16 02:20

我从python.org下载了python-2.7.amd64.msi这个安装包,安装了Python 2.7。安装和运行都没问题,但我发现它似乎是在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 个回答

3

在我的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类型。不过,如果你能分配超过三个GB的内存,那你依然能享受到64位执行的好处。

15

可以在这里查看讨论。这段内容是关于2.6.1版本的,但似乎现在仍然适用。至少我没有看到任何相反的证据。事情的核心(引用自那个链接)是:

这是设计使然。微软在他们的无尽智慧中决定,将'long'这个C语言类型始终设定为32位的有符号整数——即使在64位系统上也是如此。在大多数Unix系统中,long类型至少是32位,但通常是指针的大小。

撰写回答