pythonが32ビットシステムまたは64ビットシステム用にコンパイルされているかどうかを確認するコマンドが見つかりません。
私は試した
python
そしてそれはバージョンを伝えるだけです
また、pythonダウンロードサイトにアクセスすると、Linuxには1つのバージョンのpythonがありますが、32ビットと64ビットのMacには2つのバージョンがあります。
Python 2.6以降では、sys.maxsize
記載どおり ここ :
import sys
is_64bits = sys.maxsize > 2**32
更新:出された質問に実際には答えなかったことがわかりました。上記のテストでは、インタープリターが32ビットと64ビットのどちらのアーキテクチャーで実行されているかが正確にわかりますが、このインタープリターが構築されたアーキテクチャーの完全なセットが何であるかという質問には答えられません。質問で述べたように、これは、たとえば1つの実行可能ファイルに複数のアーキテクチャのコードが含まれているMac OS Xユニバーサル実行可能ファイルで重要です。その質問に答える1つの方法は、オペレーティングシステムのfile
コマンドを使用することです。ほとんどのシステムでは、実行可能ファイルのサポートされているアーキテクチャを報告します。ほとんどのシステムで、シェルコマンドラインから1行で実行する方法は次のとおりです。
file -L $(python -c 'import sys; print(sys.executable)')
デフォルトのシステムPythonをOS X 10.6で使用すると、出力は次のようになります。
/usr/bin/python: Mach-O universal binary with 3 architectures
/usr/bin/python (for architecture x86_64): Mach-O 64-bit executable x86_64
/usr/bin/python (for architecture i386): Mach-O executable i386
/usr/bin/python (for architecture ppc7400): Mach-O executable ppc
1つのLinuxシステム:
/usr/bin/python: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.26, stripped
ところで、これがplatform
がこの目的に対して信頼できない理由の例です。再度システムを使用Python OS X 10.6で:
$ 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
import platform
platform.architecture()[0]
#'32bit'
まず、cmdを開いて次のように入力します
$ python
次に、次の2行を入力します
>>> import platform
>>> platform.architecture()
Linuxコンソールに入力します。
- 実行用のコマンドを使用して、アプリケーションに64ビットまたは32ビットのアーキテクチャがあるかどうかを確認する場合:
type -p <command_to_run_application> | xargs readlink -f | xargs file -b | sed 's/, /\n/g' | sed -n 2p
- アプリケーションへのフルパスを使用して、アプリケーションに64ビットまたは32ビットのアーキテクチャがあるかどうかを確認する場合:
file -b <full_path_to_an_application> | sed 's/, /\n/g' | sed -n 2p
たとえば、Pythonの場合、3つの対応するコマンドは次のようになります。
type -p python3 | xargs readlink -f | xargs file -b | sed 's/, /\n/g' | sed -n 2p
file -b /usr/bin/python3.5 | sed 's/, /\n/g' | sed -n 2p
可能な出力:
x86-64
または
Intel 80386
または
ARM
またはその他。
出力が「Intel 80386」の場合、アプリケーションは32ビットアーキテクチャです。
出力が「x86-64」の場合、アプリケーションは64ビットアーキテクチャです。