[AstroPy] pywcs 1.10-4.7 install failure on Microsoft Windows

Jim Vickroy jim.vickroy at noaa.gov
Tue Jan 3 09:21:14 EST 2012


On 1/3/2012 6:33 AM, Michael Droettboom wrote:
> My apologies that this isn't working for you -- I don't have access to
> Visual Studio 9.0 to test with, so these sorts of things can fall
> through the cracks.
>
> Mark is right that the old solution involved patching wcslib before
> shipping it with pywcs.
>
> However, as of version 1.10 (which you are using), the solution was to add:
>
>      #define wcsset wcsset_
>
> on Windows.  This works with the mingw32/cygwin compiler, but apparently
> failing on the Microsoft compiler.
>
> There is an even newer solution in pywcs SVN which defines the following
> on Windows.  This I believe to work on the Microsoft compilers based on
> the report of another user:
>
> if sys.platform == 'win32':
>       define_macros.append(('YY_NO_UNISTD_H', None))
>       define_macros.append(('_CRT_SECURE_NO_WARNINGS', None))
>       define_macros.append(('_NO_OLDNAMES', None)) # for mingw32
>       define_macros.append(('NO_OLDNAMES', None)) # for mingw64
>
> You can either splice this into your current copy of setup.py, or build
> from SVN.  Note that building from SVN currently requires having parts
> of stsci_python installed (notable stsci.tools.stsci_distutils_hack).
>
> Mike

Thanks, Mike.

Could you elaborate on the above patch?  Do I need to import something 
other than sys?  Where is define_macros defined?

-- jv


> On 12/28/2011 01:36 PM, Mark Sienkiewicz wrote:
>> On 12/25/11 16:25, Tim Jenness wrote:
>>> On Sun, Dec 25, 2011 at 6:29 AM, Rahul Patel<rahpatel at ic.sunysb.edu>    wrote:
>>>> Ya.... I'm not really comfortable with commenting or changing that out.I
>>>> really wish there were some way for this to work.
>>>>
>>> The real fix is for pywcs to be modified so that it does not use a
>>> fucntion called wcsset() otherwise this clash is going to continue.
>>>
>> The problem is actually in the C code for wcslib, the library that pywcs is based on.  wcslib defines a function named wcsset (see pywcs/wcslib/C/wcs.c).  I seem to remember Mike Droettboom telling me that he has to patch wcslib every time he incorporates a new version into pywcs.
>>
>> If you are in a hurry to make pywcs work, I can suggest either a hack around the problem (as has been discussed) or use an earlier version of pywcs from before the integration of wcslib-4.8 began.
>>
>> I seem to remember that the pywcs that was include in STSCI_PYTHON 2.12 compiled on Windows.  You can download source code for stsci_python from http://www.stsci.edu/resources/software_hardware/stsci_python/current/download and then install only the pywcs package instead of the entire distribution.  Just "cd pywcs ; python setup.py install".
>>
>> If it is not urgent, Mike can probably give you a more satisfactory solution when he comes back from the holidays.
>>
>> Mark S.
>>
>> _______________________________________________
>> AstroPy mailing list
>> AstroPy at scipy.org
>> http://mail.scipy.org/mailman/listinfo/astropy
> _______________________________________________
> AstroPy mailing list
> AstroPy at scipy.org
> http://mail.scipy.org/mailman/listinfo/astropy




More information about the AstroPy mailing list