栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

python的webbrowser在Windows 7上启动IE而不是默认浏览器

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python的webbrowser在Windows 7上启动IE而不是默认浏览器

我的主要问题是通过尝试

file://
在相对路径前添加一个错误的URL 。可以用以下方法解决:

webbrowser.open('file://' + os.path.realpath(filename))

使用

webbrowser.open
将尝试多种方法,直到一个“成功”为止,这是一个宽松的定义。

WindowsDefault
类调用
os.startfile()
它失败并返回
False
。我可以通过在Windows
run命令中输入URL并看到错误消息而不是浏览器来验证这一点。

两者

GenericBrowser
BackgroundBrowser
都将
subprocess.Popen()
使用exe调用,即使该URL错误,该exe也会成功执行,然后返回
True
。IE并未提供该问题的迹象,所有其他浏览器都有一条不错的消息,提示它们找不到该文件。

  1. GenericBrowser
    由环境变量设置,
    BROWSER
    并且是第一个。
  2. WindowsDefault
    是第二。
  3. BackgroundBrowser
    是最后一个,如果没有其他方法,则包括回退IE。

这是我的原始设置:

>>> import webbrowser>>> webbrowser._tryorder['windows-default', 'C:\Program Files\Internet Explorer\IEXPLORE.EXE']>>> webbrowser._browsers.items()[('windows-default', [<class 'webbrowser.WindowsDefault'>, None]), ('c:\program files\internet explorer\iexplore.exe', [None, <webbrowser.BackgroundBrowser object at 0x00000000022E3898>])]>>>

这是修改环境变量后的设置:

C:>path=C:Program Files (x86)Mozilla Firefox;%path%C:>set BROWSER=C:UsersScottAppDataLocalGoogleChromeApplicationchrome.exeC:>pythonPython 2.7.1 (r271:86832, Nov 27 2010, 17:19:03) [MSC v.1500 64 bit (AMD64)] on win32Type "help", "copyright", "credits" or "license" for more information.>>> import webbrowser>>> webbrowser._tryorder['C:\Users\Scott\AppData\Local\Google\Chrome\Application\chrome.exe', 'windows-default', 'firefox', 'C:\Program Files\Internet Explorer\IEXPLORE.EXE']>>> webbrowser._browsers.items()[('windows-default', [<class 'webbrowser.WindowsDefault'>, None]), ('c:\program files\internet explorer\iexplore.exe',[None, <webbrowser.BackgroundBrowser object at 0x000000000235E828>]), ('firefox', [None, <webbrowser.BackgroundBrowser object at 0x000000000235E780>]), ('c:\users\scott\appdata\local\google\chrome\application\chrome.exe', [None, <webbrowser.GenericBrowser object at 0x000000000235E8D0>])]>>>

webbrowser._tryorder
给试图浏览器的列表。注册chrome或添加BROWSER env
var或修改我的路径都会使我获得正确的浏览器,并显示更好的错误消息。

感谢您的帮助,没有您的想法我无法解决。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/637951.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号