【问题标题】:How to detect Meego/Maemo platform in Python?如何在 Python 中检测 Meego/Maemo 平台?
【发布时间】:2011-07-11 00:20:40
【问题描述】:
我使用 python (PySide) 为 Maemo/Meego/Linux 平台开发跨平台应用程序。
我使用一种解决方法来区分 Maemo 和 Linux 平台:
try:
import PySide.QtMaemo5
PLATFORM = 'maemo'
except ImportError:
PLATFORM = 'desktop'
有谁知道如何检测 Meego 平台或检测 Maemo 平台的更好方法?
【问题讨论】:
标签:
python
cross-platform
maemo
pyside
meego
【解决方案1】:
拳法:使用平台模块,对于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'):
....
【解决方案2】:
长期以来,人们一直在讨论如何确定您的软件在哪个特定发行版上运行,但没有一个非常令人满意的答案。有很多技巧可以做到这一点,但最有用的可能是使用名为“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
经销商编号:MeeGo
说明:MeeGo 发布 1.1.90 (MeeGo)
发布:1.1.90
代号:MeeGo
在我的图像上。如果您只想要发布,您可以执行“lsb_release -r”。
很遗憾,Maemo 不关注 Linux 标准库,请参阅此 bug:https://bugs.maemo.org/show_bug.cgi?id=10756
所以你可能不得不在 Maemo 上使用 /usr/bin/osso-product-info。