我有一个简短的 Python 脚本,在注册表中将其设置为我的默认浏览器。它将根据 URL 选择启动 IE 或 Firefox(某些工作站点仅在 IE 中运行)。过去,我只是使用 Python 安装的完整路径来启动它,但是最近由于 Python 安装位置的更改(它现在与我们的项目文件捆绑在一起,因此可能会更频繁地更改)而无法使用。移动时路径应该会更新,因此只需根据当前环境找到 Python 就足够了。
这是旧的注册表命令项:
[HKEY_CLASSES_ROOT\RRBrowserChooserURL\shell\open\命令]
@="\"C:\\Python26\\python.exe\" \"C:\\browser_chooser.pyw\" \"%1\""
这是迄今为止我想到最好的工作选择:
[HKEY_CLASSES_ROOT\RRBrowserChooserURL\shell\open\命令]
@="\"C:\\Windows\\System32\\cmd.exe\" \"/c\" \"C:\\browser_chooser.pyw\" \"%1\""
但是,打开链接时会短暂弹出命令窗口。我想避免这种情况。
如果不以另一种语言重写我的脚本并将其编译成我可以直接引用的可执行文件,有没有一种好的方法可以在不知道路径的情况下执行它?
答案1
您必须将 Python 路径添加到系统变量 PATH 或创建一个新的系统变量,例如 PYTHONDIR,并让其指向 Python 目录,然后使用 %PYTHONDIR%\python.exe 调用 python.exe
PS. 你为什么不使用 Firefox 附加组件IE 标签?
答案2
您可以在注册表中的字段.lnk
中使用文件(即文件系统快捷方式)吗?如果可以,请创建一个运行命令的快捷方式,并将“运行”控件设置为“最小化”:open\command
cmd /c
cmd.exe
仍会运行,但不会弹出窗口;它只会显示任务栏按钮。
答案3
如果可以选择不重写编译,你可以使用以下命令将 Python 脚本编译为 exepy2exe或者pyinstaller- 它会将其编译成一个自包含的 exe 和 dll,您可以使用它来自行运行该应用程序,并将其自己的 python 副本作为 dll。