webbrowser.open works in IDLE and cmd shell but not from cygwin prompt

Michael Hoffman cam.ac.uk at mh391.invalid
Fri Apr 27 05:12:50 EDT 2007


Gregory Bloom wrote:
> I'm running Python 2.5 under Windows.  If I fire up IDLE and enter:
> 
>>>> import webbrowser
>>>> url = 'http://www.python.org'
>>>> webbrowser.open_new(url)
> 
> it works like a champ, opening the page in Firefox.  Same thing goes
> from a Windows cmd shell: it works as advertised.
> 
> But if I open a cygwin bash shell and try the same thing from a python
> prompt, I get:
> 
>>>> import webbrowser
>>>> url = 'http://www.python.org'
>>>> webbrowser.open_new(url)
> Traceback (most recent call last):
>   File "<stdin>", line 1, in <module>
>   File "C:\Python25\lib\webbrowser.py", line 60, in open_new
>     return open(url, 1)
>   File "C:\Python25\lib\webbrowser.py", line 55, in open
>     if browser.open(url, new, autoraise):
>   File "C:\Python25\lib\webbrowser.py", line 185, in open
>     p = subprocess.Popen(cmdline, close_fds=True, preexec_fn=setsid)
>   File "C:\Python25\lib\subprocess.py", line 551, in __init__
>     raise ValueError("close_fds is not supported on Windows "
> ValueError: close_fds is not supported on Windows platforms
> 
> What's up with that?

It's not a Cygwin issue, really. This occurs when one of ["firefox", 
"firebird", "seamonkey", "mozilla", "netscape", "opera"] is in your 
path. Your Cygwin environment must be set so one of these is in your 
path when it isn't normally.

You should also submit a bug.

> And, more to the point, how can I use webbrowser from scripts launched under
 > cygwin?

If you're using native Windows Python as you seem to be, try 
webbrowser.get("windows-default").open_new(url)

If you want to use Cygwin Python instead, I submitted a patch more than 
1.5 years ago to allow it, but it hasn't been reviewed:

http://python.org/sf/1244861
-- 
Michael Hoffman



More information about the Python-list mailing list