[Tutor] why does platform.architecture default to sys.executable?
Albert-Jan Roskam
fomcl at yahoo.com
Sat Oct 26 19:16:24 CEST 2013
-------------------------------------------
On Sat, 10/26/13, Amit Saha <amitsaha.in at gmail.com> wrote:
Subject: Re: [Tutor] why does platform.architecture default to sys.executable?
To: "Albert-Jan Roskam" <fomcl at yahoo.com>
Cc: "Python Mailing List" <tutor at python.org>
Date: Saturday, October 26, 2013, 6:51 PM
On Sun, Oct 27, 2013 at 2:39 AM,
Albert-Jan Roskam <fomcl at yahoo.com>
wrote:
> Hi,
>
> Why does the "executable" parameter default to
sys.executable? Yesterday I
> was surprised to see platform.architecture return
"32bit" on a 64-bit
> system, just because a 32-bit Python interpreter was
installed. Wouldn't
> this make more sense:
>
> import sys, platform
> pf = sys.platform.lower()[:3]
> executable = "iexplore.exe" if pf[:3] == "win" else
"/bin/ls"
I think it's mainly because of avoiding choosing arbitrary
programs,
although they are most certainly guaranteed to be present.
Besides,
there are better ways to find the platform architecture, I
think.
os.uname() comes to mind.
===> os.uname is Unix-only:
http://docs.python.org/2/library/os.html#os.uname
os.uname()
Return a 5-tuple containing information identifying the current operating system. The tuple contains 5 strings: (sysname, nodename, release, version, machine). Some systems truncate the nodename to 8 characters or to the leading component; a better way to get the hostname is socket.gethostname() or even socket.gethostbyaddr(socket.gethostname()).
Availability: recent flavors of Unix.
More information about the Tutor
mailing list