3

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

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

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

4

2 回答 2

4

第一种方式:使用平台模块,对于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'):
  ....
于 2011-03-08T11:47:59.393 回答
1

长期以来,人们一直在讨论如何识别您的软件正在运行的特定发行版,但没有非常令人满意的答案。有很多技巧可以做到这一点,但最有用的是使用名为“lsb_release”的 Linux 标准库工具。

它包含在 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:desktop-3.2-arm:desktop-3.2-noarch:desktop-4.0-arm:desktop-4.0-noarch 分销商 ID:MeeGo 描述:MeeGo 发布 1.1.90 (MeeGo) 发布:1.1.90 代号:MeeGo

在我的形象上。如果您只想要发布,您可以执行“lsb_release -r”。

不幸的是,Maemo 不关注 Linux 标准库,请参阅此错误:https : //bugs.maemo.org/show_bug.cgi?id=10756 所以你可能不得不使用 /usr/bin/osso-product -关于 Maemo 的信息。

于 2011-03-25T16:04:29.683 回答