当前位置: 首页 > 面试题库 >

在Windows 8.1、7 Enterprise和7 Home Edition下进行numpy安装期间,pip出现编译器问题

颜楚青
2023-03-14
问题内容

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

这是一个已广泛报道的问题,我有一个有关找不到vcvarsall.bat的问题。我已经在运行Windows 8.1、7 Enterprise和7 Home
Edition的三台不同的清洁机上对此进行了测试,并且它总是会出现。

安装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']

然后,我遵循了此建议,并在讨论论坛中链接了补丁文件,导致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

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

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错误:

  • 此链接包括对msvc9compiler.py的进一步修补程序
  • 此链接彼得公鸡(这有助于在32位Python3.4的安装)
  • 尝试使用easy_install某些用户的建议安装可能会以这种方式工作

注意1:我知道使用此网站上已编译的二进制文件的解决方法,我特别在寻找使用distutils的解决方案。注意2:错误日志显然更大,为了便于阅读,我将其剪切。


问题答案:

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

您的最终问题(破碎的工具链)是由更多与清单相关的问题引起的。我可以通过更改以下行(在msvc9compiler.py中)来解决此问题:

mfinfo = self.manifest_get_embed_info(target_desc, ld_args)

mfinfo = None

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



 类似资料:
  • 问题内容: 在Windows上,我通常只使用二进制安装程序,但是这次我只想在virtualenv中安装NumPy,因此我创建了一个虚拟env: 然后我尝试安装NumPy 我得到一个错误。我的pip.log粘贴在下面: 问题答案: 我已经成功地将NumPy二进制文件安装到具有良好的’ol和一点未归档魔术的虚拟环境中。 您从SourceForge下载的发行版实际上只是三个独立的二进制发行版的薄包装(根

  • 我有一个maven项目,并尝试进行maven安装。在执行maven安装时,我遇到以下错误。 上面是我在上面的错误消息包中尝试做一个干净install.The指定的包时收到的错误com.cx.util作为itt.jar.的一部分提供。该jar已作为依赖项添加到该项目中。我在eclipse中没有看到任何错误。只有在尝试安装时,我才收到上面的编译错误。 下面的分析完成了吗 检查依赖项,jar作为pom中

  • 我试图在我正在分发的包中创建所需的库。它需要SciPy和NumPy库。在开发过程中,我使用 它安装了SciPy 0.9。0和NumPy 1.5。1,而且效果很好。 我想使用-执行同样的操作,以便能够在设置中指定依赖项。我自己的包裹。 问题是,当我尝试时: 它很好用。 但是 惨败 我如何让它工作?

  • 问题内容: 我正在尝试在要分发的程序包中创建所需的库。它需要SciPy和NumPy库。在开发过程中,我同时使用 它安装了SciPy 0.9.0和NumPy 1.5.1,并且运行良好。 我想使用-做同样的事情,以便能够在我自己的包的setup.py中指定依赖项。 问题是,当我尝试: 它工作正常。 但是之后 惨败 我该如何工作? 问题答案: 我假设我的回答是Linux经验。我发现要顺利进行有三个先决条

  • 安装gcc进行ARM交叉编译的问题 我一直在尝试安装gcc-arm-linux-fnueabi包,并且通过几种不同的方法安装了几次,但似乎总是缺少includes目录中的C++文件夹。 我的机器:32&64位英特尔i5处理器,在华硕上运行Ubuntu 14.10 目标设备:Beaglebone(黑色)

  • NPU编译器目前只支持Python2环境下安装和使用。 安装gxDNN工具链 pip install npu_compiler 更新gxDNN工具链 pip install --upgrade npu_compiler 查看工具链版本 安装或更新完成后,可以使用如下命令查看当前工具链的版本号。 gxnpuc --version