|
View:
New views
7 Messages
—
Rating Filter:
Alert me
|
|
|
machine architecture 32/64 with Python 2.6 on Snow Leopard?I'm running /usr/bin/python on SL, and
import platform; print platform.machine() give me i386 But Activity Monitor shows Python as "Intel (64-bit)". Is this a bug in platform.machine(), or am I misunderstanding what i386 means? "platform.architecture()" returns ('64bit', ''). Bill _______________________________________________ Pythonmac-SIG maillist - Pythonmac-SIG@... http://mail.python.org/mailman/listinfo/pythonmac-sig |
|
|
Re: machine architecture 32/64 with Python 2.6 on Snow Leopard?If you run the CLI 'uname -m' on any Intel Mac, it always has returned
i386. So all it really means is 'Intel'. On Sep 18, 2009, at 5:53 PM, Bill Janssen wrote: > I'm running /usr/bin/python on SL, and > > import platform; print platform.machine() > > give me > > i386 > > But Activity Monitor shows Python as "Intel (64-bit)". > > Is this a bug in platform.machine(), or am I misunderstanding what > i386 > means? "platform.architecture()" returns ('64bit', ''). > > Bill > _______________________________________________ > Pythonmac-SIG maillist - Pythonmac-SIG@... > http://mail.python.org/mailman/listinfo/pythonmac-sig ----- William Kyngesburye <kyngchaos*at*kyngchaos*dot*com> http://www.kyngchaos.com/ "Mon Dieu! but they are all alike. Cheating, murdering, lying, fighting, and all for things that the beasts of the jungle would not deign to possess - money to purchase the effeminate pleasures of weaklings. And yet withal bound down by silly customs that make them slaves to their unhappy lot while firm in the belief that they be the lords of creation enjoying the only real pleasures of existence.... - the wisdom of Tarzan _______________________________________________ Pythonmac-SIG maillist - Pythonmac-SIG@... http://mail.python.org/mailman/listinfo/pythonmac-sig |
|
|
Re: machine architecture 32/64 with Python 2.6 on Snow Leopard?William Kyngesburye <woklist@...> wrote:
> If you run the CLI 'uname -m' on any Intel Mac, it always has returned > i386. So all it really means is 'Intel'. > > On Sep 18, 2009, at 5:53 PM, Bill Janssen wrote: > > > I'm running /usr/bin/python on SL, and > > > > import platform; print platform.machine() > > > > give me > > > > i386 > > > > But Activity Monitor shows Python as "Intel (64-bit)". > > > > Is this a bug in platform.machine(), or am I misunderstanding what > > i386 > > means? "platform.architecture()" returns ('64bit', ''). Hmmm. So what's the pythonic way of getting i386 vs. x86_64? {'32bit': 'i386', '64bit': 'x86_64'}[platform.architecture()[0]] seems so complicated that there should be a routine for it in sys or platform. Bill _______________________________________________ Pythonmac-SIG maillist - Pythonmac-SIG@... http://mail.python.org/mailman/listinfo/pythonmac-sig |
|
|
Re: machine architecture 32/64 with Python 2.6 on Snow Leopard?On Sep 18, 2009, at 5:05 PM, Bill Janssen wrote:
> William Kyngesburye <woklist@...> wrote: > >> If you run the CLI 'uname -m' on any Intel Mac, it always has >> returned >> i386. So all it really means is 'Intel'. >> >> On Sep 18, 2009, at 5:53 PM, Bill Janssen wrote: >> >>> I'm running /usr/bin/python on SL, and >>> >>> import platform; print platform.machine() >>> >>> give me >>> >>> i386 >>> >>> But Activity Monitor shows Python as "Intel (64-bit)". >>> >>> Is this a bug in platform.machine(), or am I misunderstanding what >>> i386 >>> means? "platform.architecture()" returns ('64bit', ''). > > Hmmm. So what's the pythonic way of getting i386 vs. x86_64? > > {'32bit': 'i386', '64bit': 'x86_64'}[platform.architecture()[0]] > > seems so complicated that there should be a routine for it in sys or > platform. I don't know the "official" way, but what I do is: % python -c 'import sys;print sys.maxint' 9223372036854775807 % env VERSIONER_PYTHON_PREFER_32_BIT=1 python -c 'import sys;print sys.maxint' 2147483647 So I would look at sys.maxint to determine if python is running 32 or 64-bit. Ed _______________________________________________ Pythonmac-SIG maillist - Pythonmac-SIG@... http://mail.python.org/mailman/listinfo/pythonmac-sig |
|
|
Re: machine architecture 32/64 with Python 2.6 on Snow Leopard?I think I'm just going to put '32bit' or '64bit' in my installer name strings.
Bill emoy@... wrote: > On Sep 18, 2009, at 5:05 PM, Bill Janssen wrote: > > > William Kyngesburye <woklist@...> wrote: > > > >> If you run the CLI 'uname -m' on any Intel Mac, it always has > >> returned > >> i386. So all it really means is 'Intel'. > >> > >> On Sep 18, 2009, at 5:53 PM, Bill Janssen wrote: > >> > >>> I'm running /usr/bin/python on SL, and > >>> > >>> import platform; print platform.machine() > >>> > >>> give me > >>> > >>> i386 > >>> > >>> But Activity Monitor shows Python as "Intel (64-bit)". > >>> > >>> Is this a bug in platform.machine(), or am I misunderstanding what > >>> i386 > >>> means? "platform.architecture()" returns ('64bit', ''). > > > > Hmmm. So what's the pythonic way of getting i386 vs. x86_64? > > > > {'32bit': 'i386', '64bit': 'x86_64'}[platform.architecture()[0]] > > > > seems so complicated that there should be a routine for it in sys or > > platform. > > I don't know the "official" way, but what I do is: > > % python -c 'import sys;print sys.maxint' > 9223372036854775807 > % env VERSIONER_PYTHON_PREFER_32_BIT=1 python -c 'import sys;print > sys.maxint' > 2147483647 > > So I would look at sys.maxint to determine if python is running 32 or > 64-bit. > > Ed Pythonmac-SIG maillist - Pythonmac-SIG@... http://mail.python.org/mailman/listinfo/pythonmac-sig |
|
|
Re: machine architecture 32/64 with Python 2.6 on Snow Leopard?I looked into the code for platform.architecture(), and it basically
runs the "file" command on /usr/bin/python. If the output contains the string "64-bit", it will return "64bit" as the first tuple. So it depends on what real question you are trying to answer, because in SnowLeopard, /usr/bin/python is a wrapper program that does all the versioning, reading preference files, etc, and is independent of the real python executable: /System/Library/Frameworks/Python.framework/ Versions/2.6/Resources/Python.app/Contents/MacOS/Python. Testing sys.maxint answers the question whether the current python in running in 32 or 64-bit mode. platform.architecture() just tells if the wrapper is "capable" of running 64-bit (it will run 64-bit by default on 64-bit architectures, but could actually be running 32-bit, either by choice or on 32-bit only hardware), and doesn't say anything about the real python executable. Ed On Sep 18, 2009, at 5:46 PM, Bill Janssen wrote: > I think I'm just going to put '32bit' or '64bit' in my installer > name strings. > > Bill > > emoy@... wrote: > >> On Sep 18, 2009, at 5:05 PM, Bill Janssen wrote: >> >>> William Kyngesburye <woklist@...> wrote: >>> >>>> If you run the CLI 'uname -m' on any Intel Mac, it always has >>>> returned >>>> i386. So all it really means is 'Intel'. >>>> >>>> On Sep 18, 2009, at 5:53 PM, Bill Janssen wrote: >>>> >>>>> I'm running /usr/bin/python on SL, and >>>>> >>>>> import platform; print platform.machine() >>>>> >>>>> give me >>>>> >>>>> i386 >>>>> >>>>> But Activity Monitor shows Python as "Intel (64-bit)". >>>>> >>>>> Is this a bug in platform.machine(), or am I misunderstanding what >>>>> i386 >>>>> means? "platform.architecture()" returns ('64bit', ''). >>> >>> Hmmm. So what's the pythonic way of getting i386 vs. x86_64? >>> >>> {'32bit': 'i386', '64bit': 'x86_64'}[platform.architecture()[0]] >>> >>> seems so complicated that there should be a routine for it in sys or >>> platform. >> >> I don't know the "official" way, but what I do is: >> >> % python -c 'import sys;print sys.maxint' >> 9223372036854775807 >> % env VERSIONER_PYTHON_PREFER_32_BIT=1 python -c 'import sys;print >> sys.maxint' >> 2147483647 >> >> So I would look at sys.maxint to determine if python is running 32 or >> 64-bit. >> >> Ed _______________________________________________ Pythonmac-SIG maillist - Pythonmac-SIG@... http://mail.python.org/mailman/listinfo/pythonmac-sig |
|
|
Re: machine architecture 32/64 with Python 2.6 on Snow Leopard?You could also use other test I've seen:
def arch(): import ctypes return {4: "i386", 8: "x86_64"}[ctypes.sizeof(ctypes.c_size_t)] Bill _______________________________________________ Pythonmac-SIG maillist - Pythonmac-SIG@... http://mail.python.org/mailman/listinfo/pythonmac-sig |
| Free embeddable forum powered by Nabble | Forum Help |