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

2024-04-18 10:09:06 发布

您现在位置:Python中文网/ 问答频道 /正文


Tags: python
3条回答

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

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对象到底在做什么,但它似乎没有造成任何伤害。

一个更简单的解决方案,使笔记本内核可在其他笔记本电脑。

我使用的是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

完成后,无论使用什么env启动jupyter,都应该看到两个内核。 可以在~/.local/share/jupyter/kernels/中直接删除到内核的链接。 若要指定位置,请提供ipython kernel install (--help)的选项,或者仅将目录从~/.local/share/jupyter/kernels/复制到~/envs/jupyter3/share/jupyter,如果您只想从一个笔记本上运行多个kerenels。

以下是对我有用的(非condapython): (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笔记本(此步骤无需激活venv)

(py2env)$ jupyter notebook
# or
#$ jupyter notebook

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

这也使得识别内核的python版本和并排维护变得很容易。

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

相关问题 更多 >