重複の可能性:
Python: 実行している OS は?
タイトルが示すように、Python で現在のオペレーティング システムを見つけるにはどうすればよいですか?
重複の可能性:
Python: 実行している OS は?
タイトルが示すように、Python で現在のオペレーティング システムを見つけるにはどうすればよいですか?
ユーザーが読み取り可能なデータが必要であるが、それでも詳細が必要な場合は、platform.platform()を使用できます。
>>> import platform
>>> platform.platform()
'Linux-3.3.0-8.fc16.x86_64-x86_64-with-fedora-16-Verne'
platform
他にもいくつかの便利な方法があります。
>>> platform.system()
'Windows'
>>> platform.release()
'XP'
>>> platform.version()
'5.1.2600'
自分がどこにいるかを特定するために行うことができるいくつかの異なる呼び出しがあります
import platform
import sys
def linux_distribution():
try:
return platform.linux_distribution()
except:
return "N/A"
print("""Python version: %s
dist: %s
linux_distribution: %s
system: %s
machine: %s
platform: %s
uname: %s
version: %s
mac_ver: %s
""" % (
sys.version.split('\n'),
str(platform.dist()),
linux_distribution(),
platform.system(),
platform.machine(),
platform.platform(),
platform.uname(),
platform.version(),
platform.mac_ver(),
))
このスクリプトの出力は、いくつかの異なるシステム(Linux、Windows、Solaris、MacOS)およびアーキテクチャ(x86、x64、Itanium、power pc、sparc)で実行され、https ://github.com/hpcugent/easybuild/から入手できます。 wiki / OS_flavor_name_version
たとえば、sparc上のSolarisは次のようになりました。
Python version: ['2.6.4 (r264:75706, Aug 4 2010, 16:53:32) [C]']
dist: ('', '', '')
linux_distribution: ('', '', '')
system: SunOS
machine: sun4u
platform: SunOS-5.9-sun4u-sparc-32bit-ELF
uname: ('SunOS', 'xxx', '5.9', 'Generic_122300-60', 'sun4u', 'sparc')
version: Generic_122300-60
mac_ver: ('', ('', '', ''), '')
またはM1のMacOS
Python version: ['2.7.16 (default, Dec 21 2020, 23:00:36) ', '[GCC Apple LLVM 12.0.0 (clang-1200.0.30.4) [+internal-os, ptrauth-isa=sign+stri']
dist: ('', '', '')
linux_distribution: ('', '', '')
system: Darwin
machine: arm64
platform: Darwin-20.3.0-arm64-arm-64bit
uname: ('Darwin', 'Nautilus.local', '20.3.0', 'Darwin Kernel Version 20.3.0: Thu Jan 21 00:06:51 PST 2021; root:xnu-7195.81.3~1/RELEASE_ARM64_T8101', 'arm64', 'arm')
version: Darwin Kernel Version 20.3.0: Thu Jan 21 00:06:51 PST 2021; root:xnu-7195.81.3~1/RELEASE_ARM64_T8101
mac_ver: ('10.16', ('', '', ''), 'arm64')
私は通常sys.platform
、プラットフォームを入手するために使用します。sys.platform
Linux、他のUNIX、およびOS Xを区別しますが、それらはすべてos.name
「 」です。posix
詳細については、プラットフォームモジュールを使用してください。これには、マシンアーキテクチャ、OSとOSのバージョン、Pythonのバージョンなどに関する情報を提供するクロスプラットフォーム関数があります。また、特定のLinuxディストリビューションなどを取得するためのOS固有の関数もあります。
import os
print os.name
これにより、通常必要となる重要な情報が得られます。たとえば、異なるエディションの Windows を区別するには、プラットフォーム固有の方法を使用する必要があります。
https://docs.python.org/library/os.html
Greg の投稿を補完するために、MacOS、Linux、Unix などを含む posix システムを使用している場合は、os.uname() を使用して、それがどのようなシステムであるかをよりよく理解できます。
線に沿った何か:
import os
if os.name == "posix":
print(os.system("uname -a"))
# insert other possible OSes here
# ...
else:
print("unknown OS")