使用特定的virtualenv在Jupyter笔记本中执行Python脚本
我想在Jupyter笔记本中执行一个长时间运行的Python脚本,这样我就可以在运行中修改生成的数据结构 该脚本具有许多依赖项和命令行参数,并使用特定的virtualenv执行。是否可以从指定的virtualenv(与Jupyter安装不同)在笔记本中以交互方式运行Python脚本使用特定的virtualenv在Jupyter笔记本中执行Python脚本,python,python-3.x,jupyter-notebook,virtualenv,jupyter,Python,Python 3.x,Jupyter Notebook,Virtualenv,Jupyter,我想在Jupyter笔记本中执行一个长时间运行的Python脚本,这样我就可以在运行中修改生成的数据结构 该脚本具有许多依赖项和命令行参数,并使用特定的virtualenv执行。是否可以从指定的virtualenv(与Jupyter安装不同)在笔记本中以交互方式运行Python脚本 谢谢 我发现这个链接非常有用: 确保将jupyter安装到virtualenv中。如果链接稍后消失,要点如下: 您需要创建一个新内核。您可以使用JSON文件指定内核。您的内核通常位于~/.ipython/kerne
谢谢 我发现这个链接非常有用: 确保将jupyter安装到virtualenv中。如果链接稍后消失,要点如下: 您需要创建一个新内核。您可以使用JSON文件指定内核。您的内核通常位于
~/.ipython/kernels
。创建一个名为virtualenv的目录,并在其中创建kernel.json文件。例如,我的一条路径看起来像~./ipython/kernels/datamanip/kernel.json
下面是我的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}"
]
}
我不确定codemirror_模式对象到底在做什么,但它似乎没有任何危害。一个更简单的解决方案,可以在其他笔记本电脑中使用笔记本电脑内核 我正在使用Linux+virtualenv+VirtualEnvrapper。如果您使用的是不同的设置,请将一些命令更改为适当的命令,但您应该会明白这一点
mkvirtualenv jupyter2
workon jupyter2
(jupyter2) pip install jupyter
(jupyter2) ipython kernel install --name "jupyter2_Python_2" --user
最后一个命令创建~/.local/share/jupyter/kernels/jupyter2\python\2/
目录
同样的东西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
完成后,无论您使用什么环境启动jupyter,都应该看到这两个内核。
您可以直接在~/.local/share/jupyter/kernels/
中删除指向内核的链接。
要指定位置,请提供选项以安装
ipython内核(--help)
,或者只需将目录从~/.local/share/jupyter/kernels/
复制到~/envs/jupyter3/share/jupyter
,如果您只想从一个笔记本运行多个kerenel。@singer的解决方案对我不起作用。以下是有效的方法:
. /path/to/virtualenv/.venv/bin/activate
python -m ipykernel install --user --name .venv --display-name .venv
参考:(官方文档)以下是对我有用的内容(非conda
python):
(MacOS,python的brew版本。如果您使用系统python,则可能(将)需要在每个命令前面加上sudo
)
首先激活virtualenv
如果重新开始,例如,您可以使用VirtualVWrapper
$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
接下来,设置内核
(py2env)$ python -m ipykernel install --user --name py2env --display-name "Python2 (py2env)"
然后启动jupyter笔记本电脑(此步骤无需激活venv)
在jupyter笔记本的下拉菜单中:Kernel>>更改内核>>
您应该看到Python2(py2env)
Kernel
这也使得识别内核的python版本和并排维护变得容易
这里是详细文档的链接
基于 您可以在IPython笔记本上使用virtualenv。按照以下步骤操作,实际上不需要执行第一步,只需确保您通过
source~/path激活了您的virtualenv/
kernel->Change kernel
,并能够切换到它(您可能需要刷新页面才能将其显示在列表中)。从那时起,IPython将记住该笔记本使用哪个内核nb_canda非常有用:
conda install nb_conda
因此,您可以使用conda虚拟环境创建和选择自己的python内核,并在venv中管理包
截图
列表项
jupyter笔记本电脑中的conda environment manager conda选项卡允许您直接从笔记本电脑中管理环境
换内核
您还可以使用内核菜单中的更改内核选项来选择运行笔记本的内核。不,我不这么认为。另一种解决问题的方法是使用类似PyCharm的IDE。只需选择要用于项目的virtualenv,并添加几个断点。当执行在断点处暂停时,您将能够以交互方式运行python代码。您还可以查看pdb(),不确定您是否仍然处于SO和active状态。您是否有可能提供您提到的要点链接?我必须手动将python二进制文件的路径更改为我新创建的虚拟环境的路径。也可以在
ipython.readthedocs
。。对于最新的引用是的,这是最新的引用,但是如果文本发生变化,那么我的引用将无效。这就是我给出git链接的原因。抱歉,没有检查您的链接:(这里的内容很好,谢谢。我想说的是,我第一次执行ipykernel安装步骤时,没有进行任何操作。不确定发生了什么(除了什么都没有)。第二次运行时,我收到一条消息,说明内核已经创建。对于步骤1,是否使用虚拟环境的脚本文件夹中的pip安装ipython内核?对于步骤2,是否使用虚拟环境的脚本文件夹中的python.exe运行脚本?对于步骤3,必须从哪个目录运行笔记本?
conda install nb_conda