webbrowser module bug?
Ron Adam
rrr at ronadam.com
Fri May 25 15:19:11 EDT 2007
Paul Boddie wrote:
> On 25 May, 00:03, Ron Adam <r... at ronadam.com> wrote:
>> Is anyone else having problems with the webbrowser module?
>>
>> Python 2.5.1c1 (release25-maint, Apr 12 2007, 21:00:25)
>> [GCC 4.1.2 (Ubuntu 4.1.2-0ubuntu4)] on linux2
>> Type "help", "copyright", "credits" or "license" for more information.
>> >>> import webbrowser
>> >>> webbrowser.open('http://www.python.org')
>> True
>> >>>
>>
>> It opens firefox as expected, but the url is ...
>>
>> file:///home/ron/%22http://www.python.org%22
>
> Since %22 is the URL-encoded double-quote character ("), I can only
> imagine that something is quoting the URL for the shell, resulting in
> the following command:
>
> firefox '"http://www.python.org/"'
>
> Or something similar, at least. Firefox 1.5 seems to refuse to open
> such URLs, though.
>
> Paul
Yes, thats it. I've traced it down the the subproccess.Popen call.
This works
>>> subprocess.Popen(['firefox', 'http://python.org'])
<subprocess.Popen object at 0xb7ddbeec>
This reproduces the problem I'm having.
>>> subprocess.Popen(['firefox', '"http://python.org"'])
<subprocess.Popen object at 0xb7ddbf4c>
The quoting does happen in the webbrowser module.
The cmdline is passed as...
['/usr/lib/firefox/firefox', '"http://python.org"']
I've traced it back to the following line where self.args is ['"%s"']
Line 187 in webbrowser.py:
cmdline = [self.name] + [arg.replace("%s", url)
for arg in self.args]
Now I just need to figure out why self.args is double quoted.
Cheers,
Ron
More information about the Python-list
mailing list