I find that the following works (on all versions I have tested, including Jython):
> import sys def Python_is_64bit(): > if sys.platform == 'cli': #IronPython > import System > return System.IntPtr.Size == 8 > else: > try: > return sys.maxsize > 2147483647 > except AttributeError: > return sys.maxint > 2147483647 > -- Vernon Cole On Wed, May 8, 2013 at 8:14 AM, Chong, Petra (HARVEY NASH) < [email protected]> wrote: > I do indeed get output that looks like yours - **** > > ** ** > > c:\Program Files (x86)\IronPython > 2.7>c:\users\xxxxx\Downloads\corflags.exe ipy64.exe**** > > Microsoft (R) .NET Framework CorFlags Conversion Tool. Version > 2.0.50727.42**** > > Copyright (c) Microsoft Corporation. All rights reserved.**** > > ** ** > > Version : v4.0.30319**** > > CLR Header: 2.5**** > > PE : PE32**** > > CorFlags : 9**** > > ILONLY : 1**** > > 32BIT : 0**** > > Signed : 1**** > > ** ** > > And if I then run this:**** > > ** ** > > c:\Program Files (x86)\IronPython > 2.7>c:\users\xxxxx\Downloads\corflags.exe ipy.exe**** > > Microsoft (R) .NET Framework CorFlags Conversion Tool. Version > 2.0.50727.42**** > > Copyright (c) Microsoft Corporation. All rights reserved.**** > > ** ** > > Version : v4.0.30319**** > > CLR Header: 2.5**** > > PE : PE32**** > > CorFlags : 11**** > > ILONLY : 1**** > > 32BIT : 1**** > > Signed : 1**** > > ** ** > > Thanks,**** > > ** ** > > PC**** > > ** ** > > ** ** > > *From:* Curt Hagenlocher [mailto:[email protected]] > *Sent:* 07 May 2013 17:46 > *To:* Chong, Petra (HARVEY NASH) > *Cc:* [email protected] > *Subject:* Re: [Ironpython-users] IronPython always in 32-bit mode on > 64bit machine even when running ipy64.exe**** > > ** ** > > Can you use corflags.exe to confirm that your ipy64.exe is actually not > marked for 32-bit execution? Your output should look like this:**** > > **** > > PS D:\Program Files\Sho\bin> corflags .\ipy64.exe > Microsoft (R) .NET Framework CorFlags Conversion Tool. Version > 3.5.30729.1 > Copyright (c) Microsoft Corporation. All rights reserved.**** > > Version : v2.0.50727 > CLR Header: 2.5 > PE : PE32 > CorFlags : 9 > ILONLY : 1 > 32BIT : 0 > Signed : 1**** > > **** > > ** ** > > On Tue, May 7, 2013 at 9:34 AM, Chong, Petra (HARVEY NASH) < > [email protected]> wrote:**** > > (I also asked this on StackOverflow - > http://stackoverflow.com/questions/16422812/ironpython-always-in-32-bit-mode-on-64bit-machine-even-when-running-ipy64-exe- > have copy pasted from there). > **** > > **** > > I am sure I am missing something simple but unfortunately a lot of > searching hasn't thrown up what it is..**** > > I am running Windows 7 64-bit (I verified this by looking at Control Panel > > All Control Panel Items > System and seeing that it says 64-bit Operating > System).**** > > I have IronPython 2.7.3 installed from here ( > http://ironpython.codeplex.com/downloads/get/423690)**** > > This has created the following shortcut (with no corresponding shortcut in > C:\Program Files\IronPython 2.7...):**** > > "C:\Program Files (x86)\IronPython 2.7\ipy64.exe"**** > > If I run this, I get this prompt:**** > > "c:\Projects>"C:\Program Files (x86)\IronPython 2.7\ipy64.exe"**** > > IronPython 2.7.3 (2.7.0.40) on .NET 4.0.30319.296 (32-bit)**** > > The docs from an older version of IronPython (2.6) at > http://ironpython.codeplex.com/releases/view/27350 say that:**** > > "A very visible new feature added to this release is that ipy.exe is now > strictly a 32-bit only assembly. That is, it gets executed as a 32-bit CLR > process on both x86 and x64 operating systems. ipy64.exe, despite what its > name might imply, is a platform agnostic assembly matching the old behavior > of ipy.exe in the sense that it gets executed as a 32-bit process on 32-bit > OSes and 64-bit on 64-bit OSes."**** > > From this, I infer that ipy64 should have started as a 64 bit process, but > that's not what shows in the prompt.**** > > Any ideas what I am doing wrong? Thanks in advance..**** > > Edited to add: I have also tried running the following in the IronPython > shell, which I found from another question on this site, to check whether > the OS is 64 bit**** > > >>> import System**** > > >>> System.Environment.Is64BitOperatingSystem**** > > True**** > > ... but then I ran the following which indicates that IronPython really is > running in 32 bit mode.**** > > >>> import System**** > > >>> System.IntPtr.Size**** > > 4**** > > **** > > I have tested that I have 64-bit .NET installed by creating a console > application in Visual Studio with the line > Console.WriteLn(System.IntPtr.Size) and verifying that the output is "8". > **** > > **** > > Thanks,**** > > **** > > PC**** > > > _______________________________________________ > Ironpython-users mailing list > [email protected] > http://mail.python.org/mailman/listinfo/ironpython-users**** > > ** ** > > _______________________________________________ > Ironpython-users mailing list > [email protected] > http://mail.python.org/mailman/listinfo/ironpython-users > >
_______________________________________________ Ironpython-users mailing list [email protected] http://mail.python.org/mailman/listinfo/ironpython-users
