Ich persönlich würde das wirklich nicht tun Verwenden Sie den webbrowser
Modul.
Es ist ein kompliziertes Durcheinander des Schnüffelns für bestimmte Browser, die den Standardbrowser des Benutzers nicht finden, wenn er mehr als einen installiert hat, und keinen Browser finden, wenn er seinen Namen nicht kennt (z. B. Chrome).
Unter Windows ist es besser, einfach die os.startfile
zu verwenden Funktion, die auch auf einer URL funktioniert. Unter OS X können Sie den open
verwenden Systembefehl. Unter Linux gibt es xdg-open
, ein freedesktop.org-Standardbefehl, der von GNOME, KDE und XFCE unterstützt wird.
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
Dies wird eine bessere Benutzererfahrung auf Mainstream-Plattformen bieten. Sie könnten auf webbrowser
zurückgreifen auf anderen Plattformen evtl. Wenn Sie sich jedoch auf einem obskuren/ungewöhnlichen/eingebetteten Betriebssystem befinden, auf dem keines der oben genannten Elemente funktioniert, stehen die Chancen höchstwahrscheinlich webbrowser
wird auch scheitern.
So öffnen Sie den Standardbrowser des Benutzers mit einer bestimmten URL:
import webbrowser
url = "https://www.google.com/"
webbrowser.open(url, new=0, autoraise=True)
Hier ist die Dokumentation zu dieser Funktionalität. Es ist Teil von Pythons stdlibs:
http://docs.python.org/library/webbrowser.html
Ich habe dies erfolgreich unter Linux, Ubuntu 10.10 getestet.