如何知道 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 --paths
的 kernels
文件夹中创建新的或编辑现有的 kernel.json
来更改后端 kernel
。您可以拥有多个内核(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"
您需要确保在 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?