如何在使用 Linux 子系统的 Windows 机器上使用 Python 的 webbrowser.open() 方法?

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

通常我使用 Ruby,由于我安装了一些 gem,所以我没有这个问题,但对于 Python,我不知道如何处理这个问题。 我在 Windows 机器上,使用 WSL/Ubuntu 通过 VS Code 进行开发。

一个简单的脚本,例如

import webbrowser
webbrowser.open('https://inventwithpython.com/')

什么也不做,返回 False,没有其他信息。我知道这意味着无法打开浏览器,我怀疑这是由于子系统无法访问(或不知道如何访问)为 Windows 操作系统设置的默认浏览器。 问题是这有点超出了我知道如何做的范围。

我通过以下方式找到了解决方法...

import subprocess
subprocess.run(["cmd.exe", "/c", "start", "https://inventwithpython.com/"])

但是我猜测这段代码无法在所有“正常”系统上运行。 我想知道是否还有其他我可以使用的解决方法,仍然使用上面提到的 .open() 方法。

python ubuntu windows-subsystem-for-linux python-webbrowser
1个回答
-1
投票

要从 Windows 上的 Linux 子系统(如 WSL)在 Python 中打开 URL,如果 webbrowser.open() 方法尝试使用 Linux 浏览器,则可能会遇到问题,因为它可能不会直接链接到基于 Windows 的浏览器。为了保证兼容性,您可以使用 cmd.exe 和启动命令来指定 Windows 浏览器路径,如下所示:

蟒蛇 复制代码 导入网页浏览器 webbrowser.get('cmd /c start').open('http://example.com') 或者,修改环境变量或 Python 的网络浏览器配置以定位 Windows 浏览器路径可以帮助实现兼容性。

对于那些对 海得拉巴 Python 培训感兴趣的人来说,掌握这些集成对于跨平台开发非常有用。

© www.soinside.com 2019 - 2024. All rights reserved.