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

时间:2009-12-18 00:29:47

标签: python windows registry cygwin

我正在编写一个跨平台的python脚本,如果平台是NT,则需要知道Cygwin的安装位置和位置。现在我只是使用一个天真的检查是否存在默认安装路径'C:\ Cygwin'。我希望能够以编程方式确定安装路径。

Windows注册表似乎不是一个选项,因为Cygwin不再在注册表中存储它的挂载点。因此,甚至可以以编程方式获得Cygwin安装路径?

3 个答案:

答案 0 :(得分:2)

仅适用于Cygwin 1.7:

您需要同时检查HKEY_CURRENT_USER和HKEY_LOCAL_MAHINE以获取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驱动器挂载点有注册表项:

http://www.cygwin.com/ml/cygwin/2004-12/msg00200.html

您可以使用_winreg(或python 3.0中的winreg)模块查看值:

http://docs.python.org/library/_winreg.html

答案 2 :(得分:0)

您可以使用 Cygwin 1.7

HKEY_LOCAL_MACHINE\SOFTWARE\Cygwin\setup\rootdir