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

时间:2011-11-22 22:21:17

标签: python windows python-webbrowser

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

有问题的代码:

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

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

2 个答案:

答案 0 :(得分:3)

它通常尝试执行的操作(在Windows上)使用os.startfile(url),它会启动http urls的默认应用程序。您可以在命令提示符下键入start http://www.example.com来检查其功能。如果这具有相同的效果,则您知道问题所在,并且应该在Windows中重新配置默认浏览器。

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

答案 1 :(得分: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”函数。