Personalmente non lo farei usa il webbrowser
modulo.
È un pasticcio complicato di sniffing per determinati browser, che non troverà il browser predefinito dell'utente se ne ha più di uno installato e non troverà un browser se non ne conosce il nome (ad esempio Chrome).
Meglio su Windows è semplicemente usare il os.startfile
funzione, che funziona anche su un URL. Su OS X, puoi usare il open
comando di sistema. Su Linux c'è xdg-open
, un comando standard di freedesktop.org supportato da GNOME, KDE e 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
Ciò offrirà una migliore esperienza utente sulle piattaforme tradizionali. Potresti ricorrere a webbrowser
su altre piattaforme, forse. Anche se molto probabilmente sei su un sistema operativo oscuro/insolito/incorporato in cui nessuno dei precedenti funziona, le probabilità sono webbrowser
fallirà anche.
Ecco come aprire il browser predefinito dell'utente con un determinato URL:
import webbrowser
url = "https://www.google.com/"
webbrowser.open(url, new=0, autoraise=True)
Ecco la documentazione su questa funzionalità. Fa parte delle stdlibs di Python:
http://docs.python.org/library/webbrowser.html
L'ho testato con successo su Linux, Ubuntu 10.10.