使用特定的virtualenv在Jupyter笔记本中执行Python脚本

Bed*_*des 55 python virtualenv python-3.x jupyter jupyter-notebook

我想在Jupyter笔记本中执行一个长期运行的Python脚本,这样我就可以破解中期生成的数据结构.

该脚本具有许多依赖项和命令行参数,并使用特定的virtualenv执行.是否可以从指定的virtualenv(与Jupyter安装的不同)交互式地在笔记本中运行Python脚本?

谢谢!

muo*_*uon 60

这对我conda有用(非python):( MacOS,brew版本的python.如果你正在使用系统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
Run Code Online (Sandbox Code Playgroud)

接下来,设置内核

(py2env)$ python -m ipykernel install --user --name py2env --display-name "Python2 (py2env)"
Run Code Online (Sandbox Code Playgroud)

然后启动jupyter笔记本(此步骤不需要激活venv)

(py2env)$ jupyter notebook
# or
#$ jupyter notebook
Run Code Online (Sandbox Code Playgroud)

在jupyter笔记本下拉菜单中:Kernel >> Change Kernel >> <list of kernels>你应该看到 Python2 (py2env)内核

这也使得识别内核的python版本变得容易,并且可以并排维护.

这里是详细文档的链接 http://ipython.readthedocs.io/en/stable/install/kernel_install.html

  • 好东西在这里,谢谢。我想提一下,我第一次执行 ipykernel 安装步骤时,并没有进行。不知道发生了什么(除了什么都没有)。我第二次运行它时,我收到了内核已创建的消息。 (3认同)

sin*_*ger 45

一个更简单的解决方案,让笔记本内核在其他笔记本电脑中可用.

我正在使用Linux + virtualenv + virtualenvwrapper.如果您使用不同的设置,请将某些命令更改为相应的命令,但您应该明白这一点.

mkvirtualenv jupyter2
workon jupyter2
(jupyter2) pip install jupyter
(jupyter2) ipython kernel install --name "jupyter2_Python_2" --user
Run Code Online (Sandbox Code Playgroud)

last命令创建~/.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
Run Code Online (Sandbox Code Playgroud)

完成后你应该看到两个内核,无论你使用什么环境来启动jupyter.您可以直接删除内核链接~/.local/share/jupyter/kernels/.如果要仅从一个笔记本运行多个kerenel ,则指定位置提供选项ipython kernel install (--help)或仅复制目录.~/.local/share/jupyter/kernels/~/envs/jupyter3/share/jupyter


小智 13

我发现这个链接非常有用:

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}"
    ]
}
Run Code Online (Sandbox Code Playgroud)

我不确定codemirror_mode对象到底在做什么,但它似乎没有任何伤害.


Ham*_* MP 8

根据文档,它非常简单

您可以为您的IPython笔记本使用virtualenv.按照以下步骤,实际上不需要第一步,只需确保通过激活virtualenvsource ~/path-to-your-virtualenv/

  1. 将ipython内核模块安装到virtualenv中

    workon my-virtualenv-name#激活你的virtualenv,如果你还没有pip install ipykernel

  2. (最重要的一步)现在运行内核"自安装"脚本:

    python -m ipykernel install --user --name = my-virtualenv-name根据需要替换--name参数.

  3. 您现在应该能够在IPython笔记本菜单中看到您的内核:Kernel -> Change kernel并且能够切换到它(您可能需要在页面出现之前刷新页面).IPython将记住从那时起用于该笔记本的内核.


A T*_*A T 6

@ singer的解决方案对我不起作用.这是有效的:

. /path/to/virtualenv/.venv/bin/activate
python -m ipykernel install --user --name .venv --display-name .venv
Run Code Online (Sandbox Code Playgroud)

参考:不同环境的内核(官方文档)