1

我正在 Windows 上编写一个 PyGTK 应用程序,在一个函数中,我试图用 webbrowser 模块打开一个网页。它应该是世界上最简单的东西,但它不是在浏览器中打开,而是将页面的 HTML 源代码打印到控制台。有谁知道为什么会发生这种情况?

有问题的代码:

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

我刚才在我的 Arch Linux 笔记本电脑上测试了它,它工作正常,所以这是一个特定于 Windows 的问题。也许 Python 找不到要使用的浏览器?

4

2 回答 2

3

它通常尝试做的(在 Windows 上)是 using os.startfile(url),它会启动 http url 的默认应用程序。您可以通过start http://www.example.com在命令提示符下键入来检查它的作用。如果这具有相同的效果,您就知道问题出在哪里,您应该在 Windows 中重新配置您的默认浏览器。

用户可以通过BROWSER环境变量覆盖此行为,因此您可能需要检查上述是否没有帮助。

于 2011-11-23T12:49:43.890 回答
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" 函数。

于 2011-11-23T14:41:23.680 回答