x64 Python Wheels 是否需要 x86 Visual C++ 库?
Are the x86 Visual C++ libraries needed for x64 Python Wheels?
x86 Visual C++ 库 (vc_redist.x86.exe) ever needed for running x64 Python Wheels with C/C++ extensions on Windows, or x64 Visual C++ libraries (vc_redist.x64.exe) 是否足够?
例如 x64 Tensorflow Python Wheel 不需要 x86 Visual C++ 库:
tensorflow-1.10.0-cp36-cp36m-win_amd64.whl
但我不知道这是否适用于每个 x64 Python Wheel。也许 Python Wheel 可以同时包含 x86 和 x64 机器代码。
我预计不会,除非它从 32 位可执行文件启动一个单独的进程。 64 位进程无法执行 32 位机器代码,大多数 Python 东西只是作为主要 Python 进程的一部分运行。
(从技术上讲,您可以在 DLL 中用手写的汇编语言做一些疯狂的事情:跳转到 32 位代码段,但这样就很难进行系统调用。我已经从来没有听说过有人真正这样做过,而且它不会让你自动使用 32 位库,所以它甚至与这个问题无关。)
从 64 位 Python 进程启动 32 位进程的用例可能是使用一些仅 32 位的东西,例如遗留库或其他东西。否则,如果您首先要包含一个单独的可执行文件以与您的 Python 模块一起使用,那么构建 32 位而不是 64 位可执行文件将是愚蠢的。
x86 Visual C++ 库 (vc_redist.x86.exe) ever needed for running x64 Python Wheels with C/C++ extensions on Windows, or x64 Visual C++ libraries (vc_redist.x64.exe) 是否足够?
例如 x64 Tensorflow Python Wheel 不需要 x86 Visual C++ 库:
tensorflow-1.10.0-cp36-cp36m-win_amd64.whl
但我不知道这是否适用于每个 x64 Python Wheel。也许 Python Wheel 可以同时包含 x86 和 x64 机器代码。
我预计不会,除非它从 32 位可执行文件启动一个单独的进程。 64 位进程无法执行 32 位机器代码,大多数 Python 东西只是作为主要 Python 进程的一部分运行。
(从技术上讲,您可以在 DLL 中用手写的汇编语言做一些疯狂的事情:跳转到 32 位代码段,但这样就很难进行系统调用。我已经从来没有听说过有人真正这样做过,而且它不会让你自动使用 32 位库,所以它甚至与这个问题无关。)
从 64 位 Python 进程启动 32 位进程的用例可能是使用一些仅 32 位的东西,例如遗留库或其他东西。否则,如果您首先要包含一个单独的可执行文件以与您的 Python 模块一起使用,那么构建 32 位而不是 64 位可执行文件将是愚蠢的。