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

josef.pktd at gmail.com josef.pktd at gmail.com
Sat Jun 13 18:11:40 EDT 2009


On Sat, Jun 13, 2009 at 6:03 PM, <josef.pktd at gmail.com> wrote:
> On Sat, Jun 13, 2009 at 4:41 PM, <josef.pktd at gmail.com> wrote:
>> On Sat, Jun 13, 2009 at 8:30 AM, David
>> Cournapeau<david at ar.media.kyoto-u.ac.jp> wrote:
>>> josef.pktd at 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
>

fixed in trunk in revision 5838

I think this should be backported to 0.7.1

Josef



More information about the SciPy-User mailing list