[Distutils] distutils.util.get_platform() - Linux vs Windows

Ronald Oussoren ronaldoussoren at mac.com
Thu Aug 22 12:13:35 CEST 2013


On 20 Aug, 2013, at 8:15, samuel.ferencik at barclays.com wrote:

>> -----Original Message-----
>> From: Chris Barker - NOAA Federal [mailto:chris.barker at noaa.gov] 
>> Sent: Monday, August 19, 2013 7:13 PM
>> To: Ferencik, Samuel: Markets (PRG)
>> Cc: distutils-sig at python.org
>> Subject: Re: [Distutils] distutils.util.get_platform() - Linux vs Windows
>> 
>> On Fri, Aug 16, 2013 at 2:18 AM,  <samuel.ferencik at barclays.com> wrote:
>>> It seems distutils.util.get_platform() semantically differs on Windows and
>>> Linux.
>>> 
>>> Windows: the return value is derived from the architecture of the
>>> *interpreter*, hence for 32-bit Python running on 64-bit Windows
>>> get_platform() = 'win32' (32-bit).
>>> 
>>> Linux: the return value is derived from the architecture of the *OS*, hence
>>> for 32-bit Python running on 64-bit Linux get_platform() = 'linux-x86_64'
>>> (64-bit).
>>> 
>>> Is this intentional?
>> 
>> This seems just plain wrong to me.
>> 
>> For the record, running a 32 bit Python on a 64 bit OS_X box:
>> 
>> In [5]: distutils.util.get_platform()
>> Out[5]: 'macosx-10.6-i386'
>> 
>> which is the answer I want.
>> 
>> -Chris
> 
> Chris,
> 
> What does your 'uname -m' return? Is it possible you're really running a 32-bit
> Python on a *32-bit* OS X kernel? [http://superuser.com/q/161195]

disutils.util.get_platform() on OSX returns the "architecture" supported by the
current binary. I get:

    :>>> distutils.util.get_platform()
    'macosx-10.8-intel'

This means that Python was build for a deployment target of 10.8 (that is, the binary
runs on OSX 10.8 or later) and supports the 'intel' set of architecures (i386 and x86_64).

Ronald


More information about the Distutils-SIG mailing list