判断Python程序是否在WINE上运行

问题描述 投票:0回答:2

我可以检查Linux/Windows/cygwin/等。使用 sys.platform,但在 WINE 上它只报告“win32”。

我正在尝试编写一个使用 pyserial 的多平台应用程序,并且我正在使用 WINE 来测试 Windows 环境的设置。 在 Windows 上,串行端口名为 COMxx,但在 Linux 上,它们为 /dev/ttyxxx。 然而,在 WINE 上,串行端口具有 Linux 名称。 我需要检测它是否在与 Windows 分开的 WINE 上运行,以便我可以正确处理这个问题。

python pyserial wine
2个回答
1
投票

首先,这是未经测试的,尝试创建从 .wine/dosdevices/COM1 到 /dev/ttyS0 的符号链接。它应该只允许您以 Windows 方式打开 com 端口。

但是,如果您确定要知道自己是否在 Wine 上运行,“官方”方法是检查注册表是否有“HKEY_LOCAL_MACHINE\Software\Wine”键。

无论哪种方式,如果在 Wine 上打开 COM1 不起作用,则这是一个错误,应与 Wine bugzilla 一起提交。


0
投票

你可以这样检测Wine

import os

def is_wine():
    return 'WINEPREFIX' in os.environ
© www.soinside.com 2019 - 2024. All rights reserved.