如何知道 Jupyter notebook 中运行的是哪个 Python?

Posted

技术标签:

【中文标题】如何知道 Jupyter notebook 中运行的是哪个 Python?【英文标题】:How to know which Python is running in Jupyter notebook? 【发布时间】:2017-04-03 08:01:41 【问题描述】:

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

【问题讨论】:

您可以找到 Jupyter 配置的内核设置并修改 python 可执行文件 【参考方案1】:
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 没问题。我想知道为什么? Conda 文档建议不要像这样添加到 PATH。 @AMC 你是对的,谢谢。我已经编辑指向conda init 运行sys.executable 返回'C:\\Program Files\\Anaconda3\\python.exe' - 不是很有用。我们已经知道它是 Python(来自 OP 的标题),我们想知道的是正在使用的 Python 版本。谢谢。 @Confounded 你的机器上可能有不同版本的不同解释器。 OP 询问的是调用了哪个解释器,而不是哪个版本。【参考方案2】:

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

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

应该创建一个新内核:

&lt;jupyter-data-dir&gt;/kernels/anaconda/kernel.json


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

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

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

【讨论】:

要添加更多内核规范,另请参阅IPython kernel install docs【参考方案3】:
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 Notebook 中打印:-

/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 指定内核规范的名称。这是需要 同时拥有多个 IPython 内核。 --display-name DISPLAY_NAME 指定 kernelspec 的显示名称。这是 当你有多个 IPython 内核时很有帮助。 --profile PROFILE 指定要加载的 IPython 配置文件。这个可以用 创建内核的自定义版本。 --prefix PREFIX 指定内核规范的安装前缀。这是 需要安装到非默认位置,例如 conda/虚拟环境。 --sys-prefix 安装到 Python 的 sys.prefix。的简写 --prefix='/用户/bussonniermatthias/anaconda'。用来 在 conda/virtual-envs 中。

【讨论】:

【参考方案4】:
from platform import python_version

print(python_version())

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

3.6.5

【讨论】:

这应该被选为已发布问题的答案。 OP 要求查找正在运行的可执行文件(system/anaconda),而不是哪个版本。 P. Camilleri 的答案是解决方案 Answer 无法回答问题。答案无法使用像from sys import version; version 这样的简洁单行符简洁地打印活动 Python 解释器的版本(和相关元数据)。自然地,随之而来的是 240 次投票。说得通。正如@MrMartin 所建议的那样,实际上可以看到除此之外的任何其他答案。【参考方案5】:

为 Jupyter Notebooks 创建虚拟环境

最小的 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

【讨论】:

【参考方案6】:

检查 Python 版本

导入系统 打印(系统版本)

【讨论】:

【参考方案7】:

您可以使用检查 python 版本

!python -V

Python 3.6.5 :: Anaconda, Inc.

或者

!python --version

Python 3.6.5 :: Anaconda, Inc.


您可以将 Conda 环境添加到您的 jupyter notebook

第 1 步:创建 Conda 环境。

conda create --name firstEnv

步骤 2:使用控制台中显示的命令激活环境。

conda activate firstEnv

conda install -c conda-forge <package-name>

例如

conda install -c conda-forge tensorflow

第 3 步:在你的 jupyter notebook 上设置这个 conda 环境

conda install -c anaconda ipykernel

python -m ipykernel install --user --name=firstEnv

第 4 步:只需检查您的 Jupyter Notebook,即可查看 firstEnv


你可以参考这篇文章

https://medium.com/@nrk25693/how-to-add-your-conda-environment-to-your-jupyter-notebook-in-just-4-steps-abeab8b8d084

【讨论】:

【参考方案8】:

查看 Python 版本

Jupyter 菜单帮助/关于将显示 Python 版本

【讨论】:

以上是关于如何知道 Jupyter notebook 中运行的是哪个 Python?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 python jupyter notebook 中运行 bigquery SQL 查询

如何将 MNIST 数据加载到 Google Colab Jupyter Notebook 中? [关闭]

如何在jupyter notebook中运行markdown文件(脚本代码)

如何从终端运行 .ipynb Jupyter Notebook?

如何在每个 jupyter notebook 内核之前运行 Python 代码

jupyter notebook怎么配置