关于python:如何知道哪个在Jupyter笔记本中运行?

How to know which is running in Jupyter notebook ?

我在浏览器中使用Jupyter笔记本进行Python编程,我已经安装了Anaconda(Python 3.5)。 但是我很确定Jupyter在使用本机python解释器运行我的python命令而不是使用anaconda。 如何更改它并使用Anaconda作为翻译?

谢谢!

Ubuntu 16.10 - Anaconda3


1
2
3
from platform import python_version

print(python_version())

这将为您提供运行脚本的python的确切版本。例如输出:

1
3.6.5

1
2
import sys
sys.executable

会给你翻译。您可以在创建新笔记本时选择所需的解释器。确保将anaconda解释器的路径添加到路径中(最有可能在bashrc / bash_profile中的某个位置)。

例如,我的.bash_profile中有以下行:

1
export PATH="$HOME/anaconda3/bin:$PATH"


1
2
3
4
 import sys
 print(sys.executable)
 print(sys.version)
 print(sys.version_info)

如下所示: - 当我在CONDA venv之外运行JupyterNotebook时的输出

1
2
3
4
/home/dhankar/anaconda2/bin/python
2.7.12 |Anaconda 4.2.0 (64-bit)| (default, Jul  2 2016, 17:42:40)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-1)]
sys.version_info(major=2, minor=7, micro=12, releaselevel='final', serial=0)

下面我在使用命令创建的CONDA Venv中运行相同的JupyterNoteBook时看到 -

1
conda create -n py35 python=3.5 ## Here - py35 , is name of my VENV

在我的Jupyter笔记本中打印: -

1
2
3
4
/home/dhankar/anaconda2/envs/py35/bin/python
3.5.2 |Continuum Analytics, Inc.| (default, Jul  2 2016, 17:53:06)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-1)]
sys.version_info(major=3, minor=5, micro=2, releaselevel='final', serial=0)

如果您已经使用不同版本的Python创建了各种VENV,则可以通过从JupyterNotebook菜单中选择KERNEL >> CHANGE KERNEL来切换到所需的内核...
JupyterNotebookScreencapture

还要在现有的CONDA虚拟环境中安装ipykernel -

http://ipython.readthedocs.io/en/stable/install/kernel_install.html#kernels-for-different-environments

来源--- https://github.com/jupyter/notebook/issues/1524

1
2
3
4
5
 $ /path/to/python -m  ipykernel install --help
 usage: ipython-kernel-install [-h] [--user] [--name NAME]
                          [--display-name DISPLAY_NAME]
                          [--profile PROFILE] [--prefix PREFIX]
                          [--sys-prefix]

安装IPython内核规范。

可选参数:
-h, - help显示此帮助消息并退出
--user安装当前用户而不是系统范围
--name NAME指定kernelspec的名称。这是需要的
同时拥有多个IPython内核。
--display-name DISPLAY_NAME
指定kernelspec的显示名称。这是
有多个IPython内核时很有帮助。
--profile PROFILE指定要加载的IPython配置文件。这可以使用
创建内核的自定义版本。
--prefix PREFIX指定kernelspec的安装前缀。这是
需要安装到非默认位置,例如
conda / virtual-env。
--sys-prefix安装到Python的sys.prefix。简写
前缀= '/用户/ bussonniermatthias /水蟒'。用来
在conda / virtual-envs中。


假设您有错误的后端系统,您可以通过创建新的或编辑jupyter数据路径jupyter --pathskernels文件夹中的现有kernel.json来更改后端kernel。你可以有多个内核(R,Python2,Python3(+ virtualenvs),Haskell),例如你可以创建一个Anaconda特定的内核:

1
$ /bin/python3 -m ipykernel install --user --name anaconda --display-name"Anaconda"

应该创建一个新内核:

/kernels/anaconda/kernel.json

1
2
3
4
5
{
   "argv": ["/bin/python3","-m","ipykernel","-f","{connection_file}" ],
   "display_name":"Anaconda",
   "language":"python"
}

您需要确保在anaconda发行版中安装ipykernel包。

这样您就可以在内核之间切换,并使用不同的内核使用不同的笔记本。