在virtualenv中运行jupyter内核

时间:2020-07-31 10:19:19

标签: python virtualenv jupyter

有几个与此相关的问题和答案,但没有一个针对该特定问题的解决方案。如何在virtualenv中运行jupyter内核?

请注意,我并不是在问如何在virtualenv中运行jupyter 笔记本here在其他地方得到了回答。使用this之类的方法,您可以打开一个jupyter笔记本并在所需的virtualenv中选择一个内核。我想在virtualenv中启动jupyter kernel ,然后再将控制台连接到它。

我最好的解决方案是采用上面链接中的方法,然后编辑内核json文件以将argv更改为virtualenv的python可执行文件,然后启动该jupyter内核。但是,我觉得我必须缺少一些东西,并且必须有一种更简单的方法,尽管this article提出了其他建议。

下面的bash脚本可以满足我的需求。它制作了一个名为testing的virtualenv并在其中安装了任意软件包(flask_restful),以便我以后可以检查是否可以导入它。

然后将virtualenv添加到jupyter内核,并编辑其json文件以使用virtualenv的python可执行文件,然后启动该jupyter内核。

运行脚本之后,我可以使用该内核启动jupyter控制台,并检查它是否确实在virtualenv中运行。

#!/bin/bash

source /usr/bin/virtualenvwrapper.sh

V=testing
P=flask_restful

# If virtualenv exists, remove it
if [ -d ~/.virtualenvs/$V ];
then
  rmvirtualenv $V
fi

# Make virtualenv and populate it with ipykernel and package
mkvirtualenv $V
pip install --upgrade pip
pip install ipykernel
pip install $P
deactivate

# Make a jupyter kernel for the virtualenv
python -m ipykernel install --user --name=$V

# Put the virtualenv python executable in the jupyter kernel json file
jshon -I -F ~/.local/share/jupyter/kernels/$V/kernel.json \
      -e argv -d 0 -s /home/${USER}/.virtualenvs/$V/bin/python -i 0

# Start the kernel in the background
jupyter kernel --kernel $V &

# Start a jupyter console with the most recently run kernel
F=`ls -t ~/.local/share/jupyter/runtime/kernel-*.json | head -1`
K=`basename $F`
jupyter console --existing $K

0 个答案:

没有答案