如何在Python中检测Meego / Maemo平台?

时间:2011-03-08 10:29:31

标签: python cross-platform maemo pyside meego

我使用python(PySide)为Maemo / Meego / Linux平台开发跨平台应用程序。 我使用一种解决方法来区分Maemo和Linux平台:

try:
    import PySide.QtMaemo5
    PLATFORM = 'maemo'
except ImportError:
    PLATFORM = 'desktop'

有谁知道如何检测Meego平台或更好的方法来检测Maemo平台?

2 个答案:

答案 0 :(得分:4)

Fist方式:使用平台模块,用于Maemo:

>>> import platform
>>> platform.machine()
'armv71'
>>> platform.node() ## This is Host Name, not a safe method
'Nokia N900'

由于平台至少对于Maemo没有帮助,我推荐第二种(更安全)方式:使用/ etc / issue:

issue = open('/etc/issue').read().strip().lower()
if issue.startswith('maemo'):
  ....

答案 1 :(得分:1)

长期以来,人们一直在讨论如何在没有令人满意的答案的情况下识别您的软件正在运行的特定发行版。有很多黑客可以做到这一点,但最有用的是使用名为“lsb_release”的Linux Standards Base工具。

它包含在MeeGo中,您可以像这样使用它;

$ lsb_release -a

哪个产生;

LSB版本:: core-3.1-arm:core-3.1-noarch:core-3.2-arm:core-3.2-noarch:core-4.0-arm:core-4.0-noarch:desktop-3.1-arm:desktop -3.1-noarch:桌面3.2臂:桌面3.2 noarch:桌面4.0臂:桌面-4.0-noarch 经销商ID:MeeGo 描述:MeeGo 1.1.90版(MeeGo) 发布:1.1.90 代号:MeeGo

在我的形象上。如果你只想要发布,你可以做'lsb_release -r'。

不幸的是,Maemo没有注意Linux Standards Base,看到这个bug:https://bugs.maemo.org/show_bug.cgi?id=10756 所以你可能不得不在Maemo上使用/ usr / bin / osso-product-info。