Personalmente, realmente no lo haría utiliza el webbrowser
módulo.
Es un lío complicado de olfatear navegadores particulares, que no encontrarán el navegador predeterminado del usuario si tienen más de uno instalado, y no encontrarán un navegador si no conocen el nombre (por ejemplo, Chrome).
Mejor en Windows es simplemente usar el os.startfile
función, que también funciona en una URL. En OS X, puede usar el open
comando del sistema. En Linux hay xdg-open
, un comando estándar de freedesktop.org compatible con GNOME, KDE y XFCE.
if sys.platform=='win32':
os.startfile(url)
elif sys.platform=='darwin':
subprocess.Popen(['open', url])
else:
try:
subprocess.Popen(['xdg-open', url])
except OSError:
print 'Please open a browser on: '+url
Esto brindará una mejor experiencia de usuario en las plataformas principales. Podrías recurrir a webbrowser
en otras plataformas, tal vez. Aunque lo más probable es que si tiene un sistema operativo oscuro/inusual/incrustado donde ninguno de los anteriores funciona, las posibilidades son webbrowser
fallará también.
Aquí se explica cómo abrir el navegador predeterminado del usuario con una URL dada:
import webbrowser
url = "https://www.google.com/"
webbrowser.open(url, new=0, autoraise=True)
Aquí está la documentación sobre esta funcionalidad. Es parte de las bibliotecas estándar de Python:
http://docs.python.org/library/webbrowser.html
He probado esto con éxito en Linux, Ubuntu 10.10.