Python webbrowser在Windows上将页面输出到控制台

1 投票
2 回答
503 浏览
提问于 2025-04-17 06:52

我正在Windows上写一个PyGTK应用程序,在一个函数里,我想用webbrowser模块打开一个网页。这本应该是世界上最简单的事情,但结果不是在浏览器中打开,而是把网页的HTML源代码打印到了控制台上。有没有人知道为什么会这样?

相关的代码如下:

oauthURL = ("http://api.twitter.com/oauth/authorize?oauth_token=" + requestToken)
webbrowser.open(oauthURL, 2, True)

我刚在我的Arch Linux笔记本上测试了一下,运行得很好,所以这应该是Windows特有的问题。也许Python找不到可以使用的浏览器?

2 个回答

1

这段代码可以以跨平台的方式打开一个网页:

if sys.platform[:3] == 'win':
    try:
        os.startfile(oauthURL)
    except WindowsError as why:
        # your error handling code
        print(why)
else:
    webbrowser.open(oauthURL, 2, True)

它是基于IDLE的EditorWindow.py中的"python_docs"函数。

3

在Windows系统上,它通常会尝试使用 os.startfile(url) 这个命令来打开默认的网页应用程序,也就是你平时用来上网的浏览器。你可以在命令提示符下输入 start http://www.example.com 来看看这个命令的效果。如果这个命令的效果和你遇到的问题一样,那就说明问题出在这里,你需要重新设置一下Windows里的默认浏览器。

另外,用户也可以通过 BROWSER 这个环境变量来改变这种行为,所以如果上面的方法没有解决问题,你可以检查一下这个设置。

撰写回答