我正在编写一个跨平台的python脚本,如果平台是NT,则需要知道Cygwin的安装位置和位置。现在我只是使用一个天真的检查是否存在默认安装路径'C:\ Cygwin'。我希望能够以编程方式确定安装路径。
Windows注册表似乎不是一个选项,因为Cygwin不再在注册表中存储它的挂载点。因此,甚至可以以编程方式获得Cygwin安装路径?
答案 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)模块查看值:
答案 2 :(得分:0)
您可以使用 Cygwin 1.7
的HKEY_LOCAL_MACHINE\SOFTWARE\Cygwin\setup\rootdir
值