crear entorno virtual python windows
Ejecute el script Python dentro del cuaderno Jupyter usando un virtualenv especĂfico (6)
Me gustaría ejecutar un script Python de larga ejecución desde un cuaderno Jupyter para poder piratear las estructuras de datos generadas a mitad de ejecución.
El script tiene muchas dependencias y argumentos de línea de comando y se ejecuta con un virtualenv específico. ¿Es posible ejecutar interactivamente un script de Python dentro de un cuaderno desde un virtualenv especificado (diferente al de la instalación de Jupyter)?
¡Gracias!
Es realmente simple, basado en la documentation
Puede usar un virtualenv para su computadora portátil IPython.
Siga los siguientes pasos, en realidad no es necesario el primer paso, solo asegúrese de activar su virtualenv a través de
source ~/path-to-your-virtualenv/
-
Instale el módulo del kernel ipython en su virtualenv
workon my-virtualenv-name # active su virtualenv, si aún no ha instalado pip, instale ipykernel
-
( El paso más importante ) Ahora ejecute el script de "autoinstalación" del núcleo:
python -m ipykernel install --user --name = my-virtualenv-name Reemplazando el parámetro --name según corresponda.
-
Ahora debería poder ver su kernel en el menú del cuaderno de IPython:
Kernel -> Change kernel
y poder cambiar a él (es posible que deba actualizar la página antes de que aparezca en la lista). IPython recordará qué núcleo usar para ese portátil a partir de ese momento.
Este enlace me pareció muy útil:
https://ocefpaf.github.io/python4oceanographers/blog/2014/09/01/ipython_kernel/
Asegúrese de instalar pip jupyter en su virtualenv. En caso de que el enlace desaparezca más tarde, aquí está la esencia:
Necesita crear un nuevo núcleo.
Usted especifica su núcleo con un archivo JSON.
Sus núcleos generalmente se encuentran en
~/.ipython/kernels
.
Cree un directorio con el nombre de su virtualenv y cree su archivo kernel.json en él.
Por ejemplo, una de mis rutas se ve como
~./ipython/kernels/datamanip/kernel.json
Así es como se ve mi archivo kernel.json:
{
"display_name": "Data Manipulation (Python2)",
"language": "python",
"codemirror_mode": {
"version": 3,
"name":"ipython"
},
"argv": [
"/Users/ed/.virtualenvs/datamanip/bin/python",
"-c",
"from IPython.kernel.zmq.kernelapp import main; main()",
"-f",
"{connection_file}"
]
}
No estoy seguro exactamente de lo que está haciendo el objeto codemirror_mode, pero no parece hacer ningún daño.
La solución de @ singer no funcionó para mí. Esto es lo que funcionó:
. /path/to/virtualenv/.venv/bin/activate
python -m ipykernel install --user --name .venv --display-name .venv
Referencia: Kernels para diferentes entornos (documentos oficiales)
Una solución un poco más simple para obtener núcleos de notebook disponibles en otras notebooks.
Estoy usando Linux + virtualenv + virtualenvwrapper. Si está utilizando una configuración diferente, cambie algunos comandos por los apropiados, pero debe tener la idea.
mkvirtualenv jupyter2
workon jupyter2
(jupyter2) pip install jupyter
(jupyter2) ipython kernel install --name "jupyter2_Python_2" --user
El último comando crea el directorio
~/.local/share/jupyter/kernels/jupyter2/ python/ 2/
lo mismo para 3
mkvirtualenv -p /usr/bin/python3 jupyter3
// this uses python3 as default python in virtualenv
workon jupyter3
(jupyter3) pip install jupyter
(jupyter3) ipython kernel install --name "jupyter3_Python_3" --user
Cuando termine, debería ver ambos núcleos, sin importar qué env esté utilizando para iniciar jupyter.
Puede eliminar enlaces a los núcleos directamente en
~/.local/share/jupyter/kernels/
.
Para especificar la ubicación, proporcione opciones para
ipython kernel install (--help)
o simplemente copie los directorios de
~/.local/share/jupyter/kernels/
a
~/envs/jupyter3/share/jupyter
si desea ejecutar múltiples kerenels desde un cuaderno solamente.
nb_canda es útil:
conda install nb_conda
por lo tanto, puede crear y seleccionar su propio núcleo de Python con el entorno virtual de conda, y administrar los paquetes en venv
Capturas de pantalla
Elemento de la lista
Conda Environment Manager La pestaña Conda en jupyter notebook le permite administrar sus entornos directamente desde su notebook.
Cambiar kernel También puede seleccionar en qué kernel ejecutar un cuaderno utilizando la opción Cambiar kernel en el menú Kernel
conda
es lo que funcionó para mí (
conda
no
conda
): (MacOS, versión de Python. Si está trabajando con Python del sistema, puede (necesitará) anteponer cada comando con
sudo
)
primero active virtualenv
si comienza de nuevo, por ejemplo, podría usar virtualenvwrapper
$pip install virtualenvwrapper
$mkvirtualenv -p python2 py2env
$workon py2env
# This will activate virtualenv
(py2env)$
# Then install jupyter within the active virtualenv
(py2env)$ pip install jupyter
# jupyter comes with ipykernel, but somehow you manage to get an error due to ipykernel, then for reference ipykernel package can be installed using:
(py2env)$ pip install ipykernel
Luego, configure el núcleo
(py2env)$ python -m ipykernel install --user --name py2env --display-name "Python2 (py2env)"
luego inicie jupyter notebook (el venv no necesita ser activado para este paso)
(py2env)$ jupyter notebook
# or
#$ jupyter notebook
en el menú desplegable del cuaderno jupyter:
Kernel >> Change Kernel >> <list of kernels>
debería ver el
Python2 (py2env)
Esto también facilita la identificación de la versión python del kernel y el mantenimiento de ambos lados.
aquí está el enlace a documentos detallados http://ipython.readthedocs.io/en/stable/install/kernel_install.html