[Numpy-discussion] draft release guide

Francesc Alted faltet@pytables....
Wed Mar 24 14:31:04 CDT 2010


A Wednesday 24 March 2010 15:38:58 David Cournapeau escrigué:
> Oh, it is not that easy :)
> 
> First, for some reason, the mingw-w64 project does not provide 64
> hosted compilers, and since pushing for mingw cross compilation
> support in distutils would redefine the meaning of insanity, I build
> my gcc. Since building gcc on windows is not a fun ride either, you
> have to build it on unix (I have the scripts on my github account:
> github.com/cournape/).

Mmh, not sure about what you mean by hosted compiler, but there is certainly a 
native compiler package for Win64:

mingw-w64-bin_x86_64-mingw_20100322_sezero.zip

It comes with gcc, g++ and gfortran 4.4.4.  gdb support is also there.  So it 
seems like a pretty complete toolset for windows amd64.

With it, and with some fixes in numpy sources (very few), I achieved to pass 
the build phase.  I can provide the patch in case someone is interested.  The 
generated extensions are:

24/03/2010  19:34         1.492.313 multiarray.pyd
24/03/2010  19:34           124.866 multiarray_tests.pyd
24/03/2010  19:34           453.377 scalarmath.pyd
24/03/2010  19:34         1.079.827 umath.pyd
24/03/2010  19:34           121.651 umath_tests.pyd
24/03/2010  19:34           304.014 _sort.pyd

which looks good to my eyes.

Now, when I try to generate the installable package I'm in trouble again:

$ python setup.py bdist
[...]
  File "C:
\Users\francesc\Desktop\NumPy\1.4.x\numpy\distutils\command\config.py"
, line 56, in _check_compiler
    self.compiler.initialize()
  File "C:\Python26_64\lib\distutils\msvc9compiler.py", line 359, in 
initialize
    vc_env = query_vcvarsall(VERSION, plat_spec)
  File "C:\Python26_64\lib\distutils\msvc9compiler.py", line 275, in 
query_vcvar
sall
    raise ValueError(str(list(result.keys())))
ValueError: [u'path']
[...]

So, it looks like either numpy or python cannot determine that the used 
compiler is mingw instead of msvc9.  However, when I try to specify mingw 
explicitly, I get the next error:

$ python setup.py bdist --compiler=mingw32
Running from numpy source directory.
Forcing DISTUTILS_USE_SDK=1
usage: setup.py [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...]
   or: setup.py --help [cmd1 cmd2 ...]
   or: setup.py --help-commands
   or: setup.py cmd --help

error: option --compiler not recognized

Someone could tell me why distutils can be told to use mingw32 compiler for 
the build stage but not for bdist?  What is more, why the need for a compiler 
for bdist if numpy is already built? I feel that I'm almost there, but some 
piece still resists...

-- 
Francesc Alted


More information about the NumPy-Discussion mailing list