webbrowser.open("./documentation/help.html")-- No Go in Windows

llanitedave llanitedave at veawb.coop
Sun Feb 24 21:28:22 CET 2013


On Sunday, February 24, 2013 1:35:31 AM UTC-8, Chris Rebert wrote:
> On Feb 24, 2013 1:21 AM, "llanitedave" <llani... at veawb.coop> wrote:
> 
> >
> 
> > I created an html help page for my Python 2.7.3 application and put it in a documentation folder.  I used webbrowser.open() to fetch the page.
> 
> >
> 
> > On linux -- KDE specifically, the command opens the local file on my default browser with no issues.  However, on Windows 7, it opens Internet Explorer, which doesn't even search the local folder, but goes straight to the web and does a Google search, returning nothing but useless noise.
> 
> 
> >
> 
> > My default browser on Windows is Chrome, so my intention is getting undermined right from the start.
> 
> >
> 
> > How do I get a local html file to open properly from Python in Windows?
> 
> Sounds like this might be your problem:
> 
> http://bugs.python.org/issue8936
> 
> The fix would seem to be ensuring that the URL you pass includes the scheme (in your case, "file:").
> 
> Cheers,
> 
> Chris

Holy Toledo!  That's a two-year-old bug spanning two versions of the language!

BTW, Chris, the snippet I showed in the title essentially WAS the exact code.  It's a method with that single line called from a wxPython Help menu.  I can't really put an absolute pathname into the argument, because the application is going to be distributed to a variety of computers at my workplace, and there's no assurance that it will go into (or remain in)a particular folder.

I was trying to avoid using the wx.html.HtmlWindow feature of wxPython, because it doesn't handle CSS and styles.  My help page is the portal to a multi-page users guide with a style sheet to render all the content consistently.

Plus, I couldn't get the wx.html.HtmlWindow to open relative paths either -- it gave me "URL Malformed" messages even in KDE, when webbrowser.open("filepath") was working for the exact same path.  But that's something to take up on the wxPython list, I guess.

This to me illustrates the downside of the Python philosophy of "There should be only one obvious way to do things".  If that one obvious way has a fatal bug, you're pretty much SOL.



More information about the Python-list mailing list