使用特定的 virtualenv 在 Jupyter notebook 中执行 Python 脚本
Execute Python script within Jupyter notebook using a specific virtualenv
我想从 Jupyter notebook 中执行一个长 运行ning Python 脚本,这样我就可以破解在 运行.[=11 中生成的数据结构=]
该脚本有很多依赖项和命令行参数,并使用特定的 virtualenv 执行。是否可以从指定的 virtualenv(不同于 Jupyter 安装)交互式 运行 笔记本内的 Python 脚本?
我发现这个 link 非常有用:
https://ocefpaf.github.io/python4oceanographers/blog/2014/09/01/ipython_kernel/
确保你 pip install jupyter 到你的 virtualenv 中。如果 link 稍后消失,这里是要点:
您需要创建一个新内核。您使用 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_mode 对象到底在做什么,但它似乎没有造成任何伤害。
让笔记本内核在其他笔记本中可用的更简单的解决方案。
我正在使用 Linux + virtualenv + virtualenvwrapper。如果您使用不同的设置,请将一些命令更改为适当的命令,但您应该明白了。
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 kernel install (--help)
提供选项,或者如果您只想从一个笔记本 运行 多个内核,则只需将目录从 ~/.local/share/jupyter/kernels/
复制到 ~/envs/jupyter3/share/jupyter
。
@singer 的解决方案对我不起作用。这是有效的方法:
. /path/to/virtualenv/.venv/bin/activate
python -m ipykernel install --user --name .venv --display-name .venv
参考:Kernels for different environments(官方文档)
这是对我有用的(非 conda
python):
(MacOS,python 的 brew 版本。如果您使用系统 python,您可能(将)需要在每个命令前添加 sudo
)
首先激活virtualenv。如果重新开始,例如,您可以使用 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
接下来,设置内核
(py2env)$ python -m ipykernel install --user --name py2env --display-name "Python2 (py2env)"
然后启动jupyter notebook(这一步不需要激活venv)
(py2env)$ jupyter notebook
# or
#$ jupyter notebook
在 jupyter notebook 下拉菜单中:Kernel >> Change Kernel >> <list of kernels>
你应该看到 Python2 (py2env)
内核。
这也使得识别 python 版本的内核变得容易,并且可以同时维护。
这里是 link 详细文档:
http://ipython.readthedocs.io/en/stable/install/kernel_install.html
其实很简单,基于documentation
您可以为 IPython 笔记本使用 virtualenv。请按照以下步骤操作,实际上不需要第一步,只需确保您通过 source ~/path-to-your-virtualenv/
激活了您的 virtualenv
将 ipython 内核模块安装到您的 virtualenv
workon my-virtualenv-name # 激活你的 virtualenv,如果你还没有的话
pip 安装 ipykernel
(最重要的一步)现在运行内核"self-install"脚本:
python -m ipykernel install --user --name=my-virtualenv-name
适当替换 --name 参数。
您现在应该能够在 IPython notebook 菜单中看到您的内核:Kernel -> Change kernel
并且能够切换到它(您可能需要先刷新页面它出现在列表中)。 IPython 以后会记住那个笔记本使用哪个内核。
nb_canda有用:
conda install nb_conda
因此,您可以使用 conda 虚拟环境创建和 select 自己的 python 内核,并在 venv
中管理包
截图
列表项
conda 环境管理器 jupyter notebook 中的 Conda 选项卡允许您直接在 notebook 中管理您的环境。
更改内核
您还可以 select 使用内核菜单中的更改内核选项 运行 笔记本的内核
我想从 Jupyter notebook 中执行一个长 运行ning Python 脚本,这样我就可以破解在 运行.[=11 中生成的数据结构=]
该脚本有很多依赖项和命令行参数,并使用特定的 virtualenv 执行。是否可以从指定的 virtualenv(不同于 Jupyter 安装)交互式 运行 笔记本内的 Python 脚本?
我发现这个 link 非常有用:
https://ocefpaf.github.io/python4oceanographers/blog/2014/09/01/ipython_kernel/
确保你 pip install jupyter 到你的 virtualenv 中。如果 link 稍后消失,这里是要点:
您需要创建一个新内核。您使用 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_mode 对象到底在做什么,但它似乎没有造成任何伤害。
让笔记本内核在其他笔记本中可用的更简单的解决方案。
我正在使用 Linux + virtualenv + virtualenvwrapper。如果您使用不同的设置,请将一些命令更改为适当的命令,但您应该明白了。
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 kernel install (--help)
提供选项,或者如果您只想从一个笔记本 运行 多个内核,则只需将目录从 ~/.local/share/jupyter/kernels/
复制到 ~/envs/jupyter3/share/jupyter
。
@singer 的解决方案对我不起作用。这是有效的方法:
. /path/to/virtualenv/.venv/bin/activate
python -m ipykernel install --user --name .venv --display-name .venv
参考:Kernels for different environments(官方文档)
这是对我有用的(非 conda
python):
(MacOS,python 的 brew 版本。如果您使用系统 python,您可能(将)需要在每个命令前添加 sudo
)
首先激活virtualenv。如果重新开始,例如,您可以使用 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
接下来,设置内核
(py2env)$ python -m ipykernel install --user --name py2env --display-name "Python2 (py2env)"
然后启动jupyter notebook(这一步不需要激活venv)
(py2env)$ jupyter notebook # or #$ jupyter notebook
在 jupyter notebook 下拉菜单中:Kernel >> Change Kernel >> <list of kernels>
你应该看到 Python2 (py2env)
内核。
这也使得识别 python 版本的内核变得容易,并且可以同时维护。
这里是 link 详细文档: http://ipython.readthedocs.io/en/stable/install/kernel_install.html
其实很简单,基于documentation
您可以为 IPython 笔记本使用 virtualenv。请按照以下步骤操作,实际上不需要第一步,只需确保您通过 source ~/path-to-your-virtualenv/
将 ipython 内核模块安装到您的 virtualenv
workon my-virtualenv-name # 激活你的 virtualenv,如果你还没有的话 pip 安装 ipykernel
(最重要的一步)现在运行内核"self-install"脚本:
python -m ipykernel install --user --name=my-virtualenv-name 适当替换 --name 参数。
您现在应该能够在 IPython notebook 菜单中看到您的内核:
Kernel -> Change kernel
并且能够切换到它(您可能需要先刷新页面它出现在列表中)。 IPython 以后会记住那个笔记本使用哪个内核。
nb_canda有用:
conda install nb_conda
因此,您可以使用 conda 虚拟环境创建和 select 自己的 python 内核,并在 venv
中管理包截图
列表项
conda 环境管理器 jupyter notebook 中的 Conda 选项卡允许您直接在 notebook 中管理您的环境。
更改内核 您还可以 select 使用内核菜单中的更改内核选项 运行 笔记本的内核