[Numpy-discussion] Compiling NumPy on Windows for Python 3.3 with MSVC 2010

Peter Cock p.j.a.cock@googlemail....
Wed Nov 14 12:10:24 CST 2012


Changing title to reflect the fact this thread is now about using
the Microsoft compiler rather than mingw32 as in the old thread.

On Sat, Nov 10, 2012 at 11:04 PM, Peter Cock <p.j.a.cock@googlemail.com> wrote:
> On Sat, Nov 10, 2012 at 5:47 PM, Ralf Gommers <ralf.gommers@gmail.com> wrote:
>>
>>
>>
>> On Tue, Nov 6, 2012 at 6:49 PM, Peter Cock <p.j.a.cock@googlemail.com>
>> wrote:
>>>
>>> Dear all,
>>>
>>> Since the NumPy 1.7.0b2 release didn't include a Windows
>>> (32 bit) installer for Python 3.3, I am considering compiling it
>>> myself for local testing. What compiler is recommended?
>>
>>
>> Either MSVC or MinGW 3.4.5. For the latter see
>> https://github.com/certik/numpy-vendor
>
> Thanks Ralf,
>
> I was trying with MSVC 9.0 installed, but got this cryptic error:
>
>    C:\Downloads\numpy-1.7.0b2 > C:\python33\python setup.py build
>    ...
>    error: Unable to find vcvarsall.bat
>
> After sprinkling distutils with debug statements, I found it was
> looking for MSVC v10 (not numpy's fault but the error is most
> unhelpful).
>
> Presumably "Microsoft Visual C++ 2010 Express Edition" is
> the appropriate thing to download?
> http://www.microsoft.com/visualstudio/eng/downloads#d-2010-express
>

I would have tried this earlier, but it required Windows XP SP3
and there was something amiss with the permissions on my
work Windows machine preventing that update. Solved now,
and this file now exists:

C:\Program Files\Microsoft Visual Studio 10.0\VC\vcvarsall.bat

I've tried my branch (focussed on mingw32 fixes), and numpy-1.7.0b2
but both fail at the same point. I did remove the old build directory first.

C:\Downloads\numpy-1.7.0b2>c:\python33\python setup.py build
Converting to Python3 via 2to3...
<snip>
Could not locate executable efc
don't know how to compile Fortran code on platform 'nt'
C:\Program Files\Microsoft Visual Studio 10.0\VC\BIN\cl.exe /c /nologo
/Ox /MD /W3 /GS- /DNDEBUG -Inumpy\core\src\private -Inumpy\core\src
-Inumpy\core -Inumpy\
core\src\npymath -Inumpy\core\src\multiarray -Inumpy\core\src\umath
-Inumpy\core\src\npysort -Inumpy\core\include -Ic:\python33\include
-Ic:\python33\include /Tc_configtest.c /Fo_configtest.obj
Found executable C:\Program Files\Microsoft Visual Studio 10.0\VC\BIN\cl.exe
C:\Program Files\Microsoft Visual Studio 10.0\VC\BIN\link.exe /nologo
/INCREMENTAL:NO _configtest.obj /OUT:_configtest.exe
/MANIFESTFILE:_configtest.exe.manifest
Found executable C:\Program Files\Microsoft Visual Studio 10.0\VC\BIN\link.exe
mt.exe -nologo -manifest _configtest.exe.manifest
-outputresource:_configtest.exe;1
Found executable C:\Program Files\Microsoft SDKs\Windows\v7.0A\bin\mt.exe

_configtest.exe.manifest : general error c1010070: Failed to load and
parse the manifest. The system cannot find the file specified.

failure.
removing: _configtest.c _configtest.obj
Traceback (most recent call last):
  File "setup.py", line 214, in <module>
    setup_package()
  File "setup.py", line 207, in setup_package
    configuration=configuration )
  File "C:\Downloads\numpy-1.7.0b2\build\py3k\numpy\distutils\core.py", line 186
, in setup
    return old_setup(**new_attr)
  File "c:\python33\lib\distutils\core.py", line 148, in setup
    dist.run_commands()
  File "c:\python33\lib\distutils\dist.py", line 917, in run_commands
    self.run_command(cmd)
  File "c:\python33\lib\distutils\dist.py", line 936, in run_command
    cmd_obj.run()
  File "C:\Downloads\numpy-1.7.0b2\build\py3k\numpy\distutils\command\build.py",
 line 37, in run
    old_build.run(self)
  File "c:\python33\lib\distutils\command\build.py", line 126, in run
    self.run_command(cmd_name)
  File "c:\python33\lib\distutils\cmd.py", line 313, in run_command
    self.distribution.run_command(command)
  File "c:\python33\lib\distutils\dist.py", line 936, in run_command
    cmd_obj.run()
  File "C:\Downloads\numpy-1.7.0b2\build\py3k\numpy\distutils\command\build_src.
py", line 152, in run
    self.build_sources()
  File "C:\Downloads\numpy-1.7.0b2\build\py3k\numpy\distutils\command\build_src.
py", line 163, in build_sources
    self.build_library_sources(*libname_info)
  File "C:\Downloads\numpy-1.7.0b2\build\py3k\numpy\distutils\command\build_src.
py", line 298, in build_library_sources
    sources = self.generate_sources(sources, (lib_name, build_info))
  File "C:\Downloads\numpy-1.7.0b2\build\py3k\numpy\distutils\command\build_src.
py", line 385, in generate_sources
    source = func(extension, build_dir)
  File "numpy\core\setup.py", line 648, in get_mathlib_info
    raise RuntimeError("Broken toolchain: cannot link a simple C program")
RuntimeError: Broken toolchain: cannot link a simple C program

It appears a similar issue was raised before:
http://mail.scipy.org/pipermail/numpy-discussion/2012-June/062866.html

Any tips?

Peter


More information about the NumPy-Discussion mailing list