I need to detect whether the operating system I am running on (not the
Python version) is 64bit or 32bit. One requirement is that I need to
include support for non-Intel/AMD architectures.
The 2 ways I have thought detecting 64bit are:
1. struct.calcsize("P") == 8
2. '64' in os.uname()[4]
I'm not convinced that either one of these is really adequate. Does
anybody have any other ideas on how to do this?
Thanks,
Don 8 6138
In article <44********@usenet01.boi.hp.com>,
dwelch91 <do**********@hp.comwrote:
>I need to detect whether the operating system I am running on (not the Python version) is 64bit or 32bit. One requirement is that I need to include support for non-Intel/AMD architectures.
The 2 ways I have thought detecting 64bit are:
1. struct.calcsize("P") == 8 2. '64' in os.uname()[4]
I'm not convinced that either one of these is really adequate. Does anybody have any other ideas on how to do this?
Does sys.maxint give what you need?
I think for most machines this will give you the answer you are
looking for - either 2**31 -1 for a 32 bit version or 2**63-1 for a 64
bit version. It's set up during the configure phase of building python
If you want to detect a 64bit OS running a compatibility mode for a 32
bit version of Python, then you'll need to figure out how to build and
incorporate a Python extension which can detect this situation
--
Jim Segrave (je*@jes-2.demon.nl)
Try function architecture() from the platform module in Python 2.3 and
2.4. The first item of the returned tuple shows whether the underlying
system is 64-bit capable.
Here is what it returns on RedHat Fedora Core 2 Linux on Opteron:
>>platform.architecture()
('64bit', 'ELF')
>>platform.uname()
('Linux', 'XXXX', '2.6.16.14', '#1 SMP Sat Jul 1 14:09:18 CDT 2006',
'x86_64', 'x86_64')
On RedHat Fedora Core 2 on Pentium 4:
>>platform.architecture()
('32bit', 'ELF')
>>platform.uname()
('Linux', 'XXXX', '2.6.10-1771-FC2', '#1 Mon Mar 28 00:50:14 EST 2005',
'i686', 'i686')
And on MacOS X 10.3.9 G4:
>>platform.architecture()
('32bit', '')
>>platform.uname()
('Darwin', 'XXXX', '7.9.0', 'Darwin Kernel Version 7.9.0: Wed Mar 30
20:11:17 PST 2005; root:xnu/xnu-517.12.7.obj~1/RELEASE_PPC ', 'Power
Macintosh', 'powerpc')
/Jean Brouwers
dwelch91 wrote:
I need to detect whether the operating system I am running on (not the
Python version) is 64bit or 32bit. One requirement is that I need to
include support for non-Intel/AMD architectures.
The 2 ways I have thought detecting 64bit are:
1. struct.calcsize("P") == 8
2. '64' in os.uname()[4]
I'm not convinced that either one of these is really adequate. Does
anybody have any other ideas on how to do this?
Thanks,
Don
"MrJean1" <Mr*****@gmail.comwrote in message
news:11**********************@m73g2000cwd.googlegr oups.com...
Try function architecture() from the platform module in Python 2.3 and
2.4. The first item of the returned tuple shows whether the underlying
system is 64-bit capable.
Here is what it returns on RedHat Fedora Core 2 Linux on Opteron:
>platform.architecture()
('64bit', 'ELF')
>platform.uname()
('Linux', 'XXXX', '2.6.16.14', '#1 SMP Sat Jul 1 14:09:18 CDT 2006',
'x86_64', 'x86_64')
On RedHat Fedora Core 2 on Pentium 4:
>platform.architecture()
('32bit', 'ELF')
>platform.uname()
('Linux', 'XXXX', '2.6.10-1771-FC2', '#1 Mon Mar 28 00:50:14 EST 2005',
'i686', 'i686')
And on MacOS X 10.3.9 G4:
>platform.architecture()
('32bit', '')
>platform.uname()
('Darwin', 'XXXX', '7.9.0', 'Darwin Kernel Version 7.9.0: Wed Mar 30
20:11:17 PST 2005; root:xnu/xnu-517.12.7.obj~1/RELEASE_PPC ', 'Power
Macintosh', 'powerpc')
One Windows XP 32-bit, I get:
>>import platform platform.architecture()
('32bit', 'WindowsPE')
>>platform.uname()
('Windows', 'awa1', 'XP', '5.1.2600', '', '')
>>>
Jim Segrave wrote:
In article <44********@usenet01.boi.hp.com>,
dwelch91 <do**********@hp.comwrote:
>I need to detect whether the operating system I am running on (not the Python version) is 64bit or 32bit. One requirement is that I need to include support for non-Intel/AMD architectures.
The 2 ways I have thought detecting 64bit are:
1. struct.calcsize("P") == 8 2. '64' in os.uname()[4]
I'm not convinced that either one of these is really adequate. Does anybody have any other ideas on how to do this?
Does sys.maxint give what you need?
I think for most machines this will give you the answer you are
looking for - either 2**31 -1 for a 32 bit version or 2**63-1 for a 64
bit version. It's set up during the configure phase of building python
No. Some 64-bit systems (notably Win64) leave C longs as 32-bit. This is known
as the LLP64 data model.
--
Robert Kern
"I have come to believe that the whole world is an enigma, a harmless enigma
that is made terrible by our own mad attempt to interpret it as though it had
an underlying truth."
-- Umberto Eco
In article <44********@usenet01.boi.hp.com>,
dwelch91 <do**********@hp.comwrote:
>I need to detect whether the operating system I am running on (not the Python version) is 64bit or 32bit. One requirement is that I need to include support for non-Intel/AMD architectures.
The standard C way would be to check sizeof(void *).
Michael Yanowitz wrote:
.......
>
>I need to detect whether the operating system I am running on (not the Python version) is 64bit or 32bit. One requirement is that I need to include support for non-Intel/AMD architectures.
The standard C way would be to check sizeof(void *).
so on those old ARM RISC OSes with 32 bit arithmetic would I get sizeof(void *)
== 4 when the address bus was 26 bits wide? Seems a bit naive to assume the
address bus will always be the same width as the registers, but I guess the
compilers have to do something.
I seem to remember some compilers allowing pure 32 bit addressing on 8088
machines (with 16 bit registers), but I think the M$ compilers all had near and
far pointer mechanisms to help you get confused.
-mumbling-ly yrs-
Robin Becker
Michael Yanowitz wrote:
The one thing I observed (just an observation) is that:
a) on 32-bit machines:
sizeof(int) = 32
sizeof(long) = 32
b) on 64-bit machines:
sizeof(int) = 32
sizeof(long) = 64
This in C and Python.
As I've said previously in this thread, not all systems work like that.
Specifically, on Win64 sizeof(long) == 32.
--
Robert Kern
"I have come to believe that the whole world is an enigma, a harmless enigma
that is made terrible by our own mad attempt to interpret it as though it had
an underlying truth."
-- Umberto Eco
In article <ma***************************************@python. org>,
Robin Becker <ro***@reportlab.comwrote:
>Michael Yanowitz wrote: ......
>>
>>I need to detect whether the operating system I am running on (not the Python version) is 64bit or 32bit. One requirement is that I need to include support for non-Intel/AMD architectures.
The standard C way would be to check sizeof(void *).
so on those old ARM RISC OSes with 32 bit arithmetic would I get sizeof(void *) == 4 when the address bus was 26 bits wide?
And the original 68000-based Macs where you would get the same
sizeof(void *), but the address bus was only 24 bits wide. Nevertheless,
you were supposed to pretend that addresses were a full 32 bits in size.
The programs that didn't got into trouble later. This thread has been closed and replies have been disabled. Please start a new discussion. Similar topics |
by: John Eric Hanson |
last post by:
My company is considering a development path in which we develop code on 32
bit Windows machines to run remotely on 64 bit Linux machines.
What could go wrong?
|
by: Mauricio Tavares |
last post by:
I just installed db2 8.1 workgroup server edition in a suse enterprise
9 linux box. The window in the end of the install
tell me to run db2fs as a normal user. I do it:
raubtest@db2:~>db2fs...
|
by: seb.haase |
last post by:
Hi,
I have ordered a new Athlon64 PC running linux x86_64.
I'm using Pyro to communicate between python programs running on
different machines.
I know that, because Pyro's communication is based...
|
by: llothar |
last post by:
I must say i didn't expect this. I just did some measures on FreeBSD
6.2 with gcc 3.4.6 and there is absolutely no significant difference
between 32 and 64 bit mode - neither in compilation speed,...
|
by: M O J O |
last post by:
(I'm using Visual Studio 2008)
I want my new develloper pc to be Vista 64bit, but all my clients are so
far 32bit (XP), so my questions are:
1) Is it possible for me to tell VS2008 that the...
| |
by: Leo Park |
last post by:
Hello, guys.
I want to compile 32bit *.c and *.cc files On 64bit x86_64 systems.
But, it is not work.
...
|
by: Morfys |
last post by:
Hi,
I would like to copy glibc/libgcc (in particular, libc.so.
6,libgcc_s.so.1) for a 32bit machine onto a 64bit machine. Would
using the 32bit glibc/libgcc on the 64bit machine work?
The...
|
by: Aditi |
last post by:
I am working around a problem called Y2038 bug....
|
by: legrape |
last post by:
I am porting a piece of C code to 64bit on Linux. I am using 64bit
integers. It is a floating point intensive code and when I compile
(gcc) on 64 bit machine, I don't see any runtime improvement...
|
by: marktang |
last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However,...
|
by: Hystou |
last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can...
| |
by: jinu1996 |
last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven...
|
by: agi2029 |
last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing,...
|
by: isladogs |
last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM).
In this session, we are pleased to welcome a new...
|
by: TSSRALBI |
last post by:
Hello
I'm a network technician in training and I need your help.
I am currently learning how to create and manage the different types of VPNs and I have a question about LAN-to-LAN VPNs.
The...
|
by: adsilva |
last post by:
A Windows Forms form does not have the event Unload, like VB6. What one acts like?
|
by: muto222 |
last post by:
How can i add a mobile payment intergratation into php mysql website.
| |
by: bsmnconsultancy |
last post by:
In today's digital era, a well-designed website is crucial for businesses looking to succeed. Whether you're a small business owner or a large corporation in Toronto, having a strong online presence...
| |