Lance el cuaderno de IPython con el navegador seleccionado

Estoy intentando iniciar IPython con un navegador no predeterminado (en mi caso, Firefox) y pensé que podría replicar la réplica del script que se incluye en este blog.

Estoy en Windows 7

Pongo el siguiente código en un archivo que dice “module.py”

import subprocess subprocess.call("ipython notebook --no-browser", shell=True) subprocess.call([r'C:\Program Files (x86)\Mozilla Firefox\Firefox.exe', '-new-tab', 'http://127.0.0.1:8888/']) 

Sin embargo, cuando lo ejecuto desde la línea de comandos

  python C:\Users\mugabal\Desktop\module1.py 

Ejecuta la primera línea pero no la segunda (ambas líneas funcionan bien individualmente)

Mi pregunta (en un término más general) ¿cómo puedo iniciar un proceso y decirle que no elimine la ventana de la consola?

Pido disculpas de antemano si he supervisado una explicación obvia pero busqué tanto en la documentación del subproceso como en esta plataforma

—– ACTUALIZACIÓN —–

Debería haber agregado que intenté iniciar IPython con el navegador seleccionado pero no pude averiguar cómo hacerlo funcionar

 >ipython notebook --browser='C:\Program Files (x86)\Mozilla Firefox\Firefox.exe' ... [NotebookApp] The IPython Notebook is running at: http://127.0.0.1:8888/ ... **[NotebookApp] No web browser found: could not locate runnable browser.** 

Para ser precisos, el siguiente comando en una ventana de símbolo del sistema de Windows funciona como se espera:

 start firefox 

pero

 ipython notebook --browser=firefox 

no funciona (el mismo error que el anterior).

Tuve el mismo problema en Windows y lo hice funcionar de esta manera:

  • Crear un archivo de configuración con el comando ipython profile create default

  • Edite el archivo ipython_notebook_config.py, busque la línea

#c.NotebookApp.browser =''

y reemplazarlo con

 import webbrowser webbrowser.register('firefox', None, webbrowser.GenericBrowser('C:\\Program Files (x86)\\Mozilla Firefox\\firefox.exe')) c.NotebookApp.browser = 'firefox' 

entonces funciona para mí.

Espero que te ayude.

JPG

En mi Mac, recibí el siguiente comando para usar Firefox en lugar de mi Chrome predeterminado:

 jupyter notebook --browser firefox 

¿Por qué no usar

 --browser= (NotebookApp.browser) Specify what command to use to invoke a web browser when opening the notebook. If not specified, the default browser will be determined by the `webbrowser` standard library module, which allows setting of the BROWSER 

Esta no es una respuesta real. Solo quiero compartir con los menos expertos en informática cómo se ve la respuesta de JPG paso a paso. Presumiblemente, en el Explorador de Windows (captura de pantalla adjunta a continuación), el archivo jupyter_notebook_config.py está listado:

introduzca la descripción de la imagen aquí

En mi caso, el directorio para el archivo (en el menú superior de Explorer) era C:\Users\My_name\.jupyter

La segunda parte de la respuesta se puede implementar simplemente pegando:

 import webbrowser webbrowser.register('firefox', None, webbrowser.GenericBrowser('C:\\Program Files (x86)\\Mozilla Firefox\\firefox.exe')) c.NotebookApp.browser = 'firefox' 

en el espacio en el espacio que se ve en la captura de pantalla a continuación, correspondiente al jupyter_notebook_config.py abierto dentro de PyCharm:

introduzca la descripción de la imagen aquí

… solo que lo configuré para abrir en Opera:

 import webbrowser webbrowser.register('opera', None, webbrowser.GenericBrowser('C:\\Program Files (x86)\\Opera\\launcher.exe')) c.NotebookApp.browser = 'opera' 

Descomento esta línea y me cambio a Falso, para no hacer que ipython notebook abra un navegador web al inicio, por lo que podemos apuntar la dirección de ipython notebook en un navegador web activo.

 # Whether to open in a browser after starting. The specific browser used is # platform dependent and determined by the python standard library `webbrowser` # module, unless it is overridden using the --browser (NotebookApp.browser) # configuration option. c.NotebookApp.open_browser = False 

Mejor aún, fijo la dirección en mi Firefox para activarlo cada vez que abro el navegador.

Establecí la variable de entorno BROWSER en el ejecutable del navegador (en mi caso, Google Chrome), e Ipython Notebook comenzó en el navegador que me gustaba.

 PS H:\> $env:BROWSER = "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" PS H:\> $env:BROWSER C:\Program Files (x86)\Google\Chrome\Application\chrome.exe PS H:\> PS H:\> ipython notebook 2015-02-19 14:05:01.690 [NotebookApp] Using existing profile dir: C:\\Users\\abc\\.ipython\\profile_default' 2015-02-19 14:05:01.832 [NotebookApp] Using MathJax from CDN: http://cdn.mathjax.org/mathjax/latest/MathJax.js 2015-02-19 14:05:01.901 [NotebookApp] The port 8888 is already in use, trying another random port. 2015-02-19 14:05:01.908 [NotebookApp] Serving notebooks from local directory: H:\ 2015-02-19 14:05:01.908 [NotebookApp] 0 active kernels 2015-02-19 14:05:01.910 [NotebookApp] The IPython Notebook is running at: http://localhost:8889/ 2015-02-19 14:05:01.910 [NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation). 

Cuando ejecuta el siguiente código en el símbolo del sistema, aparece el enlace del resultado que puede copiar en cualquier navegador para abrir el cuaderno de Júpiter.

 jupyter notebook --browser firefox 

Probé lo que JPG y Norfeldt sugirieron. Funcionó perfectamente en mi computadora con Windows 7. Aquí hay una copia de la sección modificada de ipython_notebook_config.py (que se encuentra en C: \ Users \ ‘su nombre de usuario’ \. Ipython para usar Safari como el navegador predeterminado para notebook. …)

 # c.NotebookApp.certfile = u'' import webbrowser webbrowser.register('safari', None, webbrowser.GenericBrowser(u'C:\\Program Files (x86)\\Safari\\safari.exe')) c.NotebookApp.browser = 'safari' 

Sin encoding, puedes configurar tu navegador predeterminado en Chrome o Firefox, etc. Funciona para mi sistema de Windows.