Python シェルが 32 ビットで実行されているか 64 ビットで実行されているかを確認するにはどうすればよいですか? 質問する

Python シェルが 32 ビットで実行されているか 64 ビットで実行されているかを確認するにはどうすればよいですか? 質問する

シェル内からシェルがどのモードになっているかを知るにはどうすればよいですか?

私は見てみましたプラットホームモジュールですが、実行ファイルに使用されるビットアーキテクチャとリンク形式についてのみ報告しているようです。私のバイナリは64ビットとしてコンパイルされています(OS X 10.6で実行しています)ので、メソッドを使用しているにもかかわらず、常に64ビットが報告されるようです。ここで説明32 ビット モードを強制します。

ベストアンサー1

sys.maxsize一つの方法は、文書化された通りに見ることですここ:

$ python-32 -c 'import sys;print("%x" % sys.maxsize, sys.maxsize > 2**32)'
('7fffffff', False)
$ python-64 -c 'import sys;print("%x" % sys.maxsize, sys.maxsize > 2**32)'
('7fffffffffffffff', True)

Windows では、同じコマンドを次の形式で実行します。

python -c "import sys;print(\"%x\" % sys.maxsize, sys.maxsize > 2**32)"

sys.maxsizePython 2.6 で導入されました。古いシステムのテストが必要な場合は、この少し複雑なテストが Python 2 および 3 のすべてのリリースで動作するはずです。

$ python-32 -c 'import struct;print( 8 * struct.calcsize("P"))'
32
$ python-64 -c 'import struct;print( 8 * struct.calcsize("P"))'
64

ところで、これを使用したくなるかもしれませんplatform.architecture()。残念ながら、その結果は必ずしも信頼できるものではありません。特にOS Xユニバーサルバイナリの場合

$ arch -x86_64 /usr/bin/python2.6 -c 'import sys,platform; print platform.architecture()[0], sys.maxsize > 2**32'
64bit True
$ arch -i386 /usr/bin/python2.6 -c 'import sys,platform; print platform.architecture()[0], sys.maxsize > 2**32'
64bit False

おすすめ記事