Numpy backwards compatibility: Visual C++ 9 not fo

2019-08-01 12:49发布

问题:

I downloaded numpy-1.10.1 from sourceforge and I have Python 2.7. I extracted, renamed and entered the numpy directory under site-packages. I ran the

python setup.py install

command, and got this error message. I have Microsoft Visual C++ 2013 Redistributable, and it's asking for version 9.

C:\Python27\Lib\site-packages\numpy
$ python setup.py install

[lots of text]
error: Microsoft Visual C++ 9.0 is required (Unable to find vcvarsall.bat) Get it from http://aka.ms/vcpython27

Why isn't it backward compatible?

回答1:

Python 2.7 uses Visual Studio 9, which came out in 2008. When you're building Python extensions, you must use the same compiler that the package was built with. So unfortunately, you'll have to download it if you want to build it yourself. You may be able to use the Microsoft Visual C++ Compiler for Python 2.7, but I haven't tested it with numpy.

On the other hand, if you don't want to download a new compiler (You can't even find Visual Studio 9 via Microsoft's website anymore), you can download a pre-built wheel from Christoph Gohlke's website. If you don't have a good reason to build it yourself, I recommend doing that. You can download the numpy wheel, and then pip install "C:\path\to\numpy‑1.9.3+mkl‑cp27‑none‑win_amd64.whl".

There are ways to build the extensions with some version of MinGW somewhere, but I'm not sure how to do it. Christoph Gohlke's extensions work nicely though, and I would recommend just downloading those.



回答2:

Microsoft maintains separate pages for python compilers. This link is what you want. Its a quick download and install. No need for pip wheel or anything.

https://www.microsoft.com/en-us/download/details.aspx?id=44266