gpt4 book ai didi

python - 在 Windows 8.1、7 Enterprise 和 7 Home Edition 下安装 numpy 期间 pip 的编译器问题

转载 作者:IT老高 更新时间:2023-10-28 20:48:32 24 4
gpt4 key购买 nike

由于收到与编译问题相关的各种错误,我无法在运行 Python 3.4 的计算机上通过 pip install numpy 安装 numpy(这仅适用于 64 位安装的 Python)。

这是一个已被广泛报道的问题,我有 a related question关于无法找到 vcvarsall.bat。我已经在运行 Windows 8.1、7 Enterprise 和 7 Home Editions 的三台不同的干净机器上对此进行了测试,并且它总是出现。

安装 Visual Studio 2010 Express C++ 消除了链接中的第一个错误 - 即无法找到 vcvarsall.bat 但抛出以 ValueError 结尾的下一个异常,如下所示:

  File "C:\Python34\lib\distutils\msvc9compiler.py", line 371, in initialize

vc_env = query_vcvarsall(VERSION, plat_spec)

File "C:\Python34\lib\distutils\msvc9compiler.py", line 287, in query_vcvarsall

raise ValueError(str(list(result.keys())))

ValueError: ['path']

然后我关注了这个advice并修补了论坛中链接的文件,导致 KEY_BASE 错误。

  File "C:\Users\Matej\AppData\Local\Temp\pip_build_Matej\numpy\numpy\distutils\command\config.py", line 18, in <module>

from numpy.distutils.mingw32ccompiler import generate_manifest

File "C:\Users\Matej\AppData\Local\Temp\pip_build_Matej\numpy\numpy\distutils\mingw32ccompiler.py", line 36, in <module>

from distutils.msvccompiler import get_build_version as get_build_msvc_version

File "C:\Python34\lib\distutils\msvccompiler.py", line 638, in <module>

from distutils.msvc9compiler import MSVCCompiler

File "C:\Python34\lib\distutils\msvc9compiler.py", line 71, in <module>

r"v%sA"

File "C:\Python34\lib\distutils\msvc9compiler.py", line 67, in <listcomp>

WINSDK_PATH_KEYS = [KEY_BASE + "Microsoft SDKs\\Windows\\" + rest for rest in (

NameError: name 'KEY_BASE' is not defined

按照同一链接中的建议,我在 msvc9compiler.py 中调用变量之前添加了以下 KEY_BASE 定义:

KEY_BASE = r"Software\Microsoft\\"

导致我无法解决的最终错误:

  File "C:\Users\Matej\AppData\Local\Temp\pip_build_Matej\numpy\numpy\distutils\command\build_src.py", line 164, in build_sources

self.build_library_sources(*libname_info)

File "C:\Users\Matej\AppData\Local\Temp\pip_build_Matej\numpy\numpy\distutils\command\build_src.py", line 299, in build_library_sources

sources = self.generate_sources(sources, (lib_name, build_info))

File "C:\Users\Matej\AppData\Local\Temp\pip_build_Matej\numpy\numpy\distutils\command\build_src.py", line 386, in generate_sources

source = func(extension, build_dir)

File "numpy\core\setup.py", line 682, in get_mathlib_info

raise RuntimeError("Broken toolchain: cannot link a simple C program")

RuntimeError: Broken toolchain: cannot link a simple C program

我尝试了以下方法,但都没有解决 Broken toolchain 错误:

  • 这个 link其中包括对 msvc9compiler.py 的进一步补丁
  • 这个 link作者:Peter Cock(这有助于 Python3.4 的 32 位安装)
  • 尝试使用 easy_install 进行安装,因为一些用户认为它可能会这样工作

注意 1:我知道在此 website 上使用已编译二进制文件的解决方法如果有的话,我正在专门寻找使用 distutils 的解决方案。注 2:错误日志明显更大,为了便于阅读,我将它们剪掉了。

最佳答案

我能够在 Windows 7 Professional(64 位)中重现所有这些错误。

您的最后一个问题(损坏的工具链)是由更多与 list 相关的问题引起的。我可以通过更改以下行(在 msvc9compiler.py 中)来解决这个问题:

mfinfo = self.manifest_get_embed_info(target_desc, ld_args)

mfinfo = None

从而绕过了紧随其后的 if 语句。在此更改后,numpy 成功为我编译。

关于python - 在 Windows 8.1、7 Enterprise 和 7 Home Edition 下安装 numpy 期间 pip 的编译器问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23064899/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com