Python: generic webbrowser.get (). Open () para chrome.exe no funciona

Estoy en Python 2.7 (Win 8.1 x64) y quiero abrir una URL en Chrome. Como Chrome solo es compatible de forma nativa en 3.3+, estaba intentando una llamada genérica:

import webbrowser webbrowser.get("C:\Program Files (x86)\Google\Chrome\Application\chrome.exe %s").open("http://google.com") 

La ruta es correcta y la impresión me da un controlador:

 "" 

Sin embargo, la función open () – preferiblemente open_new_tab ()) – no funciona. Devuelve Falso.

Si ejecuto el comando

 "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" "https://google.com" 

Sin embargo, en Windows Ejecutar diálogo, funciona.


    Si configuro Chrome como navegador estándar y ejecuto

     webbrowser.get().open("http://google.com") 

    Funciona, pero no es lo que quiero.

    ¿Alguien tiene una idea de lo que está mal?

    Debe utilizar rutas de estilo Unix en la llamada webbrowser.get :

     webbrowser.get("C:/Program Files (x86)/Google/Chrome/Application/chrome.exe %s").open("http://google.com") 

    Esto se debe a que el shlex.split realiza internamente un shlex.split en la ruta, que solo borrará los separadores de ruta de estilo Windows:

     >>> cmd = "C:\\Users\\oreild1\\AppData\\Local\\Google\\Chrome\\Application\\chrome.exe %s" >>> shlex.split(cmd) ['C:Usersoreild1AppDataLocalGoogleChromeApplicationchrome.exe', '%s'] >>> cmd = "C:/Users/dan/AppData/Local/Google/Chrome/Application/chrome.exe % s" >>> shlex.split(cmd) ['C:/Users/dan/AppData/Local/Google/Chrome/Application/chrome.exe', '%s'] 

    shlex realmente hará lo correcto aquí si se le da el argumento posix=False keyword, pero el shlex no proporcionará eso, incluso en Windows. Esto es posiblemente un error en el webbrowser .

    Siguiendo las sugerencias anteriores y trabajando en Windows, para habilitar Firefox, he cambiado (y no he comentado) la siguiente línea en el archivo de configuración (note el% s al final):

    c.NotebookApp.browser = ‘C: / Archivos de progtwig (x86) / Mozilla Firefox / firefox.exe% s’

    Esto funcionó para mí. Gracias

    No necesita cambiar a las rutas de estilo Unix, simplemente cite el ejecutable.

     import webbrowser webbrowser.get('"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" %s').open('http://google.com')