我想从Jupyter笔记本中执行一个长时间运行的Python脚本,这样我就可以破解运行过程中生成的数据结构。
该脚本具有许多依赖项和命令行参数,并使用特定的virtualenv执行。是否可以从指定的virtualenv (与Jupyter安装不同)以交互方式在notebook中运行Python脚本?
谢谢!
发布于 2017-02-11 05:59:43
以下是对我有效的方法(非conda
python):(MacOS,python的brew版本。如果您正在使用system python,您可能(将)需要在每个命令前面加上sudo
)
首先激活虚拟环境
如果重新启动,那么例如,您可以使用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版本和同时维护两个版本变得很容易。
这是指向详细文档http://ipython.readthedocs.io/en/stable/install/kernel_install.html的链接
发布于 2016-09-20 20:05:41
让notebook内核在其他笔记本中可用的更简单的解决方案。
我使用的是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
。
发布于 2015-12-31 00:49:44
我发现这个链接非常有用:
https://ocefpaf.github.io/python4oceanographers/blog/2014/09/01/ipython_kernel/
确保将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_mode对象到底在做什么,但它似乎没有什么坏处。
https://stackoverflow.com/questions/33496350
复制相似问题