[SciPy-user] [Numpy-discussion] scipy 0.7.1 rc3

josef.pktd@gmai... josef.pktd@gmai...
Sat Jun 13 17:03:58 CDT 2009


On Sat, Jun 13, 2009 at 4:41 PM, <josef.pktd@gmail.com> wrote:
> On Sat, Jun 13, 2009 at 8:30 AM, David
> Cournapeau<david@ar.media.kyoto-u.ac.jp> wrote:
>> josef.pktd@gmail.com wrote:
>>>
>>>
>>> with 0.7.1 I get the 300 skip known failures
>>>
>>
>> I don't remember the details, but there was an intersection on quite a
>> few problems, that is another distutils wart (which exits the process
>> through System.exit() in some weird cases, and there is no way around it
>> except not executing the corresponding code), some problems with
>> subprocess on windows, and mingw problems. I don't know why it used to
>> work on 0.6.0 compared to 0.7.0.
>>
>>> For some time now, I have the problem that some build scripts with
>>> setup.py don't use mingw as compiler even though I have it specified
>>> in distutils.cfg, and they don't find a non-existing microsoft
>>> compiler.
>>> But I have no idea whether this is related to numpy distutils or any
>>> other changes that happened to my python 2.5 install.
>>>
>>
>> I don't know either. Frankly, all this code to detect compilers is such
>> a mess in distutils and numpy.distutils, and it depends so much on the
>> configuration (whether you have some version of Visual Studio or not,
>> and it of course depends on the python version) that I consider the
>> problem to be intractable, at least for someone like me who don't spend
>> its time on windows. I don't have a better answer :)
>>
>
> I narrowed down the weave/mingw problems to changes that occured
> during the release process of 0.7.0 that broke mingw detection for
> windows users.
>
> If I run 0.7.0b1 (the last version of 0.7.0 that I had fully tested
> and in my python25 install), I get the good result
>
> Python 2.5.2 (r252:60911, Feb 21 2008, 13:11:45) [MSC v.1310 32 bit (Intel)] on
> win32
> Type "help", "copyright", "credits" or "license" for more information.
>>>> import scipy.weave
>>>> scipy.weave.test('full')
> Running unit tests for scipy.weave
> NumPy version 1.3.0
> NumPy is installed in c:\programs\python25\lib\site-packages\numpy
> SciPy version 0.7.0.dev5180
> SciPy is installed in c:\programs\python25\lib\site-packages\scipy
> Python version 2.5.2 (r252:60911, Feb 21 2008, 13:11:45) [MSC v.1310 32 bit (Int
> el)]
> nose version 0.11.1
>
> Ran 448 tests in 774.532s
> OK (KNOWNFAIL=2, SKIP=7)
> <nose.result.TextTestResult run=448 errors=0 failures=0>
>
>
> With the release version of 0.7.0 and removing the skip known failures
> decorators I get the errors because mingw is not used as the compiler.
>
> so the change happened between svn versions '5180' and '5542'
>
> It looks like the problem is not outside of scipy, since I can run
> 0.7.0b1 in my regular python25 without the problems, with no other
> changes in the setup.
>
> (I had the compiler detection problem the first time a while ago with
> theano, but I thought it was a problem with theano since they mention
> that it is not tested for windows)
>
> BTW: is there a way to give the no-skip argument, i.e. run also known
> failures, to nose in the call to test, e.g. scipy.test(...)?
>
> Josef
>
some bughunting later, if I drop platform_info.py  from 0.7.0b1 into
the recent scipy trunk, then everything works ok.

the problem is that the change to subprocess in platform_info.py
introduced a keyword, close_fds, that is not available on windows.
Since it is inside a try except clause, the error is captured in the
same way as if the shell command were not available. (the joy of broad
try except clauses)

so the fix for windows is to remove the unavailable close_fds keyword

- p = subprocess.Popen([str(name), '-v'], shell=True, close_fds=True,
+ p = subprocess.Popen([str(name), '-v'], shell=True,

the same change has been made for build_tools.py already in changesets
5438 and 5439 but not for platform_info.py

Also the skip decorator for the segfaulting (with mingw) test that
uses cout, has been removed in the current trunk,
test_with_include in test_ext_tools.py

I'm glad it's nothing serious with my setuptools/distutils/... setup.



The new test results for scipy.weave.test('full') are:

>>> scipy.weave.test('full')
Running unit tests for scipy.weave
NumPy version 1.3.0
NumPy is installed in c:\programs\python25\lib\site-packages\numpy
SciPy version 0.8.0.dev5789
SciPy is installed in c:\josef\_progs\subversion\scipy-trunk_after\trunk\dist\sc
ipy-0.8.0.dev5789.win32\programs\python25\lib\site-packages\scipy
Python version 2.5.2 (r252:60911, Feb 21 2008, 13:11:45) [MSC v.1310 32 bit (Int
el)]
nose version 0.11.1

Ran 440 tests in 789.235s
OK (KNOWNFAIL=2)
<nose.result.TextTestResult run=440 errors=0 failures=0>

Josef


More information about the SciPy-user mailing list