es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo obtener o activar un entorno virtual dentro de una shell de IPython?

Utilizo IPython y el comando mágico %bookmark pero la limitación es que necesito salir de la shell de IPython para activar un entorno virtual y luego reiniciar IPython.

¿Existe alguna forma, integrada en IPython, un paquete de terceros o una solución conocida que me permita activar el entorno sin salir de la shell de IPython?

Flujo de trabajo actual:


Dentro de la shell de IPython exit En la shell de bash cd ruta/de/mi/proyecto poetry shell # o pipenv shell ipython

Flujo de trabajo previsto:

%cd -b demographics

Activar el entorno virtual

import paquete # desde ese entorno
Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Desafortunadamente, no hay una forma incorporada de activar un entorno virtual desde dentro de IPython sin salir y volver a lanzar la terminal. Sin embargo, existen algunos trucos que puedes usar:

    1. Utiliza el comando mágico %run de IPython para ejecutar un comando de terminal que active el entorno virtual antes de lanzar IPython:
    %run -i 'source ruta/hacia/venv/bin/activate && ipython'
    

    Este comando activará el entorno virtual y lanzará IPython sin tener que salir de la terminal.

    1. Utiliza el paquete ipykernel para crear un nuevo kernel asociado al entorno virtual:
    !python -m ipykernel install --user --name=myenv
    
    # dentro de la terminal de IPython
    %connect_info                # encuentra el archivo de conexión
    %cd /ruta/hacia/mi/proyecto  # cambia al directorio del proyecto
    
    # habilita el nuevo kernel
    %connect_info                 # copia la ruta del archivo y el ID del kernel actual al portapapeles
    !jupyter console --existing /ruta/hacia/archivo/de/conexión/kernel-x.json
    

    Una vez que hayas creado el nuevo kernel y te hayas conectado a él utilizando jupyter console, podrás usar IPython como de costumbre, y todos los paquetes instalados en el entorno virtual estarán disponibles.

    Estas soluciones no son ideales, pero proporcionan una forma de trabajar con IPython y entornos virtuales sin salir de la terminal.

Comments are closed.