在Python脚本中获取Cygwin的安装路径

3

我正在编写一个跨平台的Python脚本,如果平台是NT,则需要知道Cygwin是否安装以及安装位置。目前,我只是使用了一种简单的方式来检查默认安装路径'C:\Cygwin'是否存在。我希望能够通过程序确定安装路径。

由于Cygwin不再将其挂载点存储在注册表中,因此似乎无法使用Windows注册表。因此,有可能通过编程方式获取Cygwin的安装路径吗?

3个回答

2

仅适用于Cygwin 1.7:

您需要同时检查HKEY_CURRENT_USER和HKEY_LOCAL_MACHINE的Cygwin注册表键。根据Cygwin的安装方式,它可能位于任一键下。

以下是使用当前用户查询该值的示例。

CYGWIN_KEY = "SOFTWARE\\Cygwin\\setup"
hk_user = winreg.HKEY_CURRENT_USER
key = winreg.OpenKey(hk_user, CYGWIN_KEY)
root = winreg.QueryValueEx(key, "rootdir")[0]

编写脚本时,您应该首先检查全局的HKEY_LOCAL_MACHINE。但请记住,在单台计算机上可能安装有多个Cygwin。


1

1
Cygwin 1.7不再使用注册表作为挂载点。 - an0nym0usc0ward
有没有其他方法可以获取Cygwin的安装路径,因为它不再将挂载点存储在注册表中? - cseaton

0

您可以使用 HKEY_LOCAL_MACHINE\SOFTWARE\Cygwin\setup\rootdir 值来安装 Cygwin 1.7


该键在我的机器上不存在。 - cseaton
密钥实际上位于HKKEY_CURRENT_USER下,因为cygwin在我的系统上的安装方式。 - cseaton

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接