311

重複の可能性:
Python: 実行している OS は?

タイトルが示すように、Python で現在のオペレーティング システムを見つけるにはどうすればよいですか?

4

5 に答える 5

363

ユーザーが読み取り可能なデータが必要であるが、それでも詳細が必要な場合は、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')
于 2012-04-10T15:15:48.457 に答える
329

私は通常sys.platform、プラットフォームを入手するために使用します。sys.platformLinux、他のUNIX、およびOS Xを区別しますが、それらはすべてos.name「 」です。posix

詳細については、プラットフォームモジュールを使用してください。これには、マシンアーキテクチャ、OSとOSのバージョン、Pythonのバージョンなどに関する情報を提供するクロスプラットフォーム関数があります。また、特定のLinuxディストリビューションなどを取得するためのOS固有の関数もあります。

于 2008-09-21T11:49:19.687 に答える
45
import os
print os.name

これにより、通常必要となる重要な情報が得られます。たとえば、異なるエディションの Windows を区別するには、プラットフォーム固有の方法を使用する必要があります。

于 2008-09-21T06:04:34.820 に答える
19

https://docs.python.org/library/os.html

Greg の投稿を補完するために、MacOS、Linux、Unix などを含む posix システムを使用している場合は、os.uname() を使用して、それがどのようなシステムであるかをよりよく理解できます。

于 2008-09-21T06:04:07.363 に答える
9

線に沿った何か:

import os
if os.name == "posix":
    print(os.system("uname -a"))
# insert other possible OSes here
# ...
else:
    print("unknown OS")
于 2011-08-24T11:31:20.727 に答える