如何知道Jupyter笔记本中正在运行哪个?


109

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

Ubuntu 16.10-Anaconda3


2
您可以找到Jupyter配置的内核设置并修改python可执行文件
OneCricketeer

Answers:


189
from platform import python_version

print(python_version())

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

3.6.5

1
应该选择它作为已发布问题的答案。
黑暗圣堂武士

5
OP要求查找正在运行的可执行文件(系统/ anaconda),而不是哪个版本。P. Camilleri的答案就是解决方案
马丁先生

67
import sys
sys.executable

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

例如,我以前在.bash_profile中有以下行,我是手动添加的:

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

编辑:如评论中所述,这不是将anaconda添加到路径的正确方法。引用Anaconda的文档,应在安装后改为使用以下方法conda init

我应该将Anaconda添加到macOS或Linux PATH吗?

我们不建议手动将Anaconda添加到PATH。在安装过程中,系统将询问您“是否希望安装程序通过运行conda init来初始化Anaconda3?” 我们建议“是”。如果输入“ no”,则conda根本不会修改您的Shell脚本。为了在安装过程完成后进行初始化,请先运行source <path to conda>/bin/activate然后再运行conda init


我正在Spyder中运行此程序,但没有结果,但是Jupyter可以。我想知道为什么?
东京太

1
Conda文档建议不要像这样添加到PATH。
AMC

@AMC,您是对的,谢谢。我已编辑指向 conda init
P. Camilleri

40
import sys
print(sys.executable)
print(sys.version)
print(sys.version_info)

见下文:-当我在CONDA venv之外运行JupyterNotebook时的输出

/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时看到以下内容-

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

在我的Jupyter笔记本中打印:

/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

 $ /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。--prefix ='/ Users / bussonniermatthias / anaconda'的简写。用于conda / virtual-envs。


0

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

$ <anaconda-path>/bin/python3 -m ipykernel install --user --name anaconda --display-name "Anaconda"

应该创建一个新内核:

<jupyter-data-dir>/kernels/anaconda/kernel.json

{
    "argv": [ "<anaconda-path>/bin/python3", "-m", "ipykernel", "-f", "{connection_file}" ],
    "display_name": "Anaconda",
    "language": "python"
}

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

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


要添加更多内核
Thomas K

-1

为Jupyter Notebook创建虚拟环境

最小的Python安装是

sudo apt install python3.7 python3.7-venv python3.7-minimal python3.7-distutils python3.7-dev python3.7-gdbm python3-gdbm-dbg python3-pip

然后您可以创建和使用环境

/usr/bin/python3.7 -m venv test
cd test
source test/bin/activate
pip install jupyter matplotlib seaborn numpy pandas scipy
# install other packages you need with pip/apt
jupyter notebook
deactivate

您可以使用以下命令为Jupyter创建内核

ipython3 kernel install --user --name=test
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.