2012-04-01 5 views
8

संभव डुप्लिकेट:
How do I determine if my python shell is executing in 32bit or 64bit mode?अजगर - जाँच लें कि एक प्रणाली समारोह को चलाने या नहीं यह निर्धारित करने के 32 या 64 बिट है?

मैं एक सवाल पहले कभी नहीं का जवाब दिया गया, लेकिन अब मैं इसलिए उम्मीद है कि आप मदद कर सकते हैं और अधिक विशिष्ट कुछ है।

मूल रूप से SendKeys पुस्तकालय केवल Windows के अपने 32 बिट सिस्टम पर स्थापित करने के लिए प्रकट होता है ... अगर वहाँ बनाने का एक तरीका है

तो मैं सोच रहा था यह तो यह समारोह मैं लिखने के लिए केवल पर निष्पादित करेंगे जा रहा हूँ एक 32 बिट सिस्टम? मुझे पता है कि मौजूदा प्रणाली की जांच करने के लिए एक platform.architecture() विधि है, लेकिन यह स्ट्रिंग "('64 बिट', 'WindowsPE')" देता है।

मैं यदि इस समारोह काम सही ढंग से बनाने के लिए इस स्ट्रिंग के 64 बिट भाग को पढ़ने के लिए एक तरीका था सोच रहा था।

उदाहरण के लिए

, छद्म कोड:

checker = platform.architecture() 
system = strip or read 64 bit from checker string somehow 
if system == 64 bit 
then warn system is 64 bit and won't run function 
else run function 

कि की लाइन के साथ। जब तक इसे जांचने का एक आसान तरीका न हो - शायद पाइथन के संस्करण (यानी 32 या 64 बिट) के संस्करण के खिलाफ

आशा है कि मैंने इसे सही तरीके से समझ लिया है - मैं प्रोग्रामिंग के लिए अभी भी नया हूं। :)

+3

http://stackoverflow.com/questions/1405913/how-do-i-determine-if-my-python-shell-is-executing-in-32bit-or-64bit-mode और http:/का डुप्लिकेट /stackoverflow.com/questions/1842544/how-do-i-detect-if-python-is-running-as-a-64-bit-application और http://stackoverflow.com/questions/2208828/detect-64bit -ओ-विंडोज-इन-पायथन जो शायद सबसे सटीक डुप्लिकेट है। – agf

+0

हाँ क्षमा करें बस यह एहसास हुआ। नीचे दिया गया जवाब अब तक का सबसे आसान तरीका प्रतीत होता है! – Semaj

उत्तर

16

this documentation के बाद, इस कोड का प्रयास करें:

is_64bits = sys.maxsize > 2**32 

ध्यान दें: इस एक गलत परिणाम लौटा सकते हैं या 32 बिट अजगर एक 64 बिट ऑपरेटिंग सिस्टम पर चल रहा है।

+2

यदि पायथन 32 बिट है और विंडोज 64 बिट है, तो यह क्या लौटाता है? – agf

+6

यह गलत है। – Taymon

+0

धन्यवाद! यह समाधान लगता है। – Semaj

4

एक वैकल्पिक पद्धति। निश्चित रूप से सभी प्लेटफार्मों पर काम करता है:

import struct 
is_64bit = struct.calcsize('P') * 8 == 64 

एक नोट के रूप में, इस its.py का हिस्सा है।

+0

its.py एक ब्रेनर है इसलिए आपको पीडी में अपना लाइसेंस बदलना चाहिए! मुझे लगता है कि इस मॉड्यूल को आयात करने के बजाय परीक्षणों को सीधे स्क्रिप्ट में शामिल करना बेहतर होगा। – phobie

+0

यह मेरी लाइब्रेरी नहीं है :) – jterrace

संबंधित मुद्दे