Problemas do compilador com pip durante a instalação numpy no Windows 8.1, 7 Enterprise e 7 Home Editions
Não consigo instalar o numpy via pip install numpy no meu computador executando o Python 3.4 devido a vários erros que recebo vinculados a problemas de compilação (esse é apenas o caso em uma instalação de 64 bits do Python).
Este é um problema que foi relatado extensivamente e eu tiveuma pergunta relacionada sobre incapaz de encontrar vcvarsall.bat. Eu testei isso em três máquinas limpas diferentes executando o Windows 8.1, 7 Enterprise e 7 Home Editions e ele sempre aparece.
A instalação do Visual Studio 2010 Express C ++ se livra do primeiro erro no link - ou seja, não é possível encontrar o vcvarsall.bat, mas lança uma próxima exceção que termina com um ValueError, como aqui:
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']
Eu segui issoconselho e corrigiu o arquivo como vinculado no fórum de discussão, o que resultou em um erro 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
Seguindo o conselho no mesmo link, adicionei a seguinte definição deKEY_BASE
antes que a variável seja chamada em msvc9compiler.py:
KEY_BASE = r"Software\Microsoft\\"
O que resulta no erro final que não consegui solucionar:
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
Eu tentei o seguinte, mas nada resolveu o problemaBroken toolchain
erro:
easy_install
como alguns usuários sugeriram, pode funcionar dessa maneiraNOTA 1: Estou ciente da solução alternativa usando os binários compilados nestelocal na rede Internet Estou procurando especificamente uma solução usando distutils, se houver. NOTA 2: Os logs de erros são obviamente maiores e eu os corto para facilitar a leitura.