win32 上的 64 位 Anaconda 使用 32 位还是 64 位?

Does 64-bit Anaconda on win32 uses 32-bit or 64-bit?

我想答案是 32 位,但我有点困惑为什么我什至可以在 win32 中安装 Anaconda 64。

我曾经在 Anaconda 64 位上工作,但我刚刚意识到我的系统是 win32,这时常会产生一些异常。例如,请参阅我为 scipy:

打开的这个问题

https://github.com/scipy/scipy/issues/4524

根据我的系统信息,我有一个 64 位 OS。所以:

(我不知道为什么我在“64位OS”上有一个win32)

当我开始 python 会话时,它显示:

Anaconda 2.1;0 (64-bit) (default; Jul 2 2014) [MSC v.1 500 64 bit (AMD64)] on win32.

I have a 64-bit OS according to my system info

这就是最重要的,这就是 64 位版本的 Anaconda 在您的系统上运行的原因。

您在系统的什么地方看到过 "Win32" 一词?你为什么从那里推断出你没有 64 位架构? "Win32" 通常用作 Windows API 本身的名称。据我所知,它很少用于指示系统编译的实际架构。

Anaconda 2.1;0 (64-bit) (default; Jul 2 2014) [MSC v.1 500 64 bit (AMD64)] on win32

这里win32表示系统是Windows。 Windows API 在 x86 和 x64 上的名称都是 Win32。它与 API 完全相同,但指针大小不同。这有点令人困惑,但是当您阅读 win32 时,将其解释为桌面 Windows。

这里重要的是 AMD64。这表明代码在其上执行的机器。这是x64机器。

您的代码是 运行 64 位进程。

Conda python CLI 报告 win32 的原因如下:

(base)  $ python.exe
Python 3.7.6 (default, Jan  8 2020, 20:23:39) [MSC v.1916 64 bit (AMD64)] :: Anaconda, Inc. on win32

最有可能是 windows python 如何处理以下内容中的 sys, os 的混淆产物:

print(os.sys.platform)     
# win32
print(sys.platform)        
# win32