2012-04-01 3 views
8

可能性の重複:
How do I determine if my python shell is executing in 32bit or 64bit mode?Python - システムが32ビットか64ビットかをチェックして、その関数を実行するかどうかを判断しますか?

私は答えにやったことがなかったという以前の質問をしたが、私はそううまくいけば、あなたは助けることができる今、より具体的な何かを持っています。

基本的のSendKeysライブラリは、Windowsの私の32ビットシステムにインストールするように見える...

ので、私は書くつもりです。この機能はのみに実行され、それを作る方法があるのであれば、私は思っていました32ビットシステム?現在のシステムをチェックするplatform.architecture()メソッドがあることを認識していますが、文字列 "( '64bit'、 '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 

。それをチェックする簡単な方法がない限り、多分Pythonのバージョン(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-64bit-application and http://stackoverflow.com/questions/2208828/detect-64bitおそらく最も正確な複製である-os-windows-in-pythonです。 – agf

+0

はい、申し訳ありませんが、これを実現しました。以下の答えは、これまでのところ最も簡単な方法です! – Semaj

答えて

16

this documentationに続いて、このコードを試してみてください。

is_64bits = sys.maxsize > 2**32 

注:32ビットPythonが64ビットのオペレーティングシステム上で実行されている場合、これは誤った結果を返すことができます。

+2

Pythonが32ビットで、Windowsが64ビットの場合、これは何を返しますか? – agf

+6

Falseを返します。 – Taymon

+0

ありがとう!これは解決策のようです。 – Semaj

4

代替方法。すべてのプラットフォームで間違いなく動作します。

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

注:これはits.pyの一部です。

+0

its.pyは簡単ではありませんので、ライセンスをPDに変更する必要があります!このモジュールをインポートするのではなく、スクリプトに直接テストを含める方が良いと思います。 – phobie

+0

それは私のライブラリではありません:) – jterrace

関連する問題