首页 > 编程问答 >Jupyter Notebook 环境中的 Python 版本不匹配

Jupyter Notebook 环境中的 Python 版本不匹配

时间:2024-07-25 05:01:52浏览次数:14  
标签:python jupyter-notebook conda jupyter jupyter-lab

我遇到 Jupyter 笔记本启动横幅中报告的 Python 版本与我在笔记本中查询 python --version 时显示的版本之间的差异。启动横幅指示Python 3.11.9,但是当我运行 !python --version 时,它返回Python 3.11.7。

我所做的步骤:

  1. base conda has 3.11.7 version
  2. conda create --prefix ~ /.conda/pypypy python=3.11.9
  3. conda activate ~/.conda/pypypy
  4. python -m ipykernel install --user --name pypypy

预期行为: 中查询的 Python 版本笔记本电脑应与启动横幅中指示的版本匹配。但实际上存在不匹配: enter image description here

已完成故障排除:

  • 检查环境的内核规范文件 ( kernel.json ) 以确保它指向正确的 Python 可执行文件。
(/home/karzymatov/.conda/pypypy) karzymatov@55f26f77b14d:~/mtb_join$ jupyter kernelspec list
Available kernels:
  python3    /home/karzymatov/.conda/pypypy/share/jupyter/kernels/python3
  pypypy     /home/karzymatov/.local/share/jupyter/kernels/pypypy
cat /home/karzymatov/.local/share/jupyter/kernels/pypypy/kernel.json 
{
 "argv": [
  "/home/karzymatov/.conda/pypypy/bin/python",
  "-Xfrozen_modules=off",
  "-m",
  "ipykernel_launcher",
  "-f",
  "{connection_file}"
 ],
 "display_name": "pypypy",
 "language": "python",
 "metadata": {
  "debugger": true
 }

  • 确保笔记本正在使用预期的内核.

有人可以帮助解释为什么会出现这种差异以及如何确保笔记本使用启动横幅中所示的正确Python版本吗?


在 Jupyter Notebook 中遇到的 Python 版本不匹配问题很可能与创建和命名的内核有关。虽然的内核规范文件 (kernel.json) 看起来指向了正确的 Python 可执行文件,但 Jupyter 似乎正在使用另一个也命名为“python3”的内核。

以下步骤可以帮助解决问题:

1. 重命名内核:

  • 为了避免混淆,请尝试将的新内核重命名为更具描述性的名称,而不是“pypypy”。例如,将其命名为“python3119”。
  • 可以通过修改 kernel.json 文件中的 "display_name" 字段来实现这一点:

    json { "argv": [ "/home/karzymatov/.conda/pypypy/bin/python", "-Xfrozen_modules=off", "-m", "ipykernel_launcher", "-f", "{connection_file}" ], "display_name": "python3119", # 将名称更改为此处 "language": "python", "metadata": { "debugger": true } }

2. 重新启动 Jupyter Notebook:

  • 在进行任何更改后,请务必关闭所有 Jupyter Notebook 实例并重新启动它。这将确保 Jupyter 识别新的内核配置。

3. 选择正确的内核:

  • 在新的 Jupyter Notebook 中,转到“Kernel”->“Change kernel”并选择新命名的内核 (例如,"python3119")。

4. 验证 Python 版本:

  • 在笔记本中运行 !python --version 再次检查 Python 版本。现在它应该显示 Python 3.11.9。

如果问题仍然存在,请尝试以下附加步骤:

  • 删除不必要的内核: 使用 jupyter kernelspec remove <kernel_name> 命令删除任何不再需要或重复的内核。
  • 清除 Jupyter 缓存: 删除 ~/.local/share/jupyter/ 目录下的缓存文件。

通过执行这些步骤,应该能够解决 Python 版本不匹配问题,并确保的 Jupyter Notebook 使用期望的 Python 环境。

标签:python,jupyter-notebook,conda,jupyter,jupyter-lab
From: 78790306

相关文章

  • Python XML 解析:字符串中的“<”被阻塞
    我有一个使用ET.XMLParser来解析CppCheckXML报告文件的Python模块。当尝试解析字符串中包含“<”的XML元素中的属性之一时,它会令人窒息,它会将其解释为格式错误的XML,例如:<errormsg="Includefile<iostream>notfound.">(注意字符和“iostream”之间的空格必须放......
  • 任意几行代码要成为Python中的函数需要什么?
    我正在上一门计算机科学课,我的任务是创建一个程序来实现一个带有参数的函数。我的老师告诉我,下面的代码不是一个函数,这让我很困惑,对于将某些代码行归类为“函数”所需的条件,我感到很困惑。defgame(numbers,max_turns,pfl,tgl):turns=0flag=Falseprint("You......
  • 如何使用 Python 创建新的 Azure 订阅?
    我正在尝试使用PythonSDK以编程方式创建新的Azure订阅。我发现的对AzurePythonSDK的唯一引用是这个这是我最终得到的结果:importazure.mgmt.billingimportazure.mgmt.subscriptioncreds=AzureCliCredential()client_name='test'defcreat......
  • 用于打印脚本输出的 Python 实用程序
    我可以发誓有一个实用程序可以打印一个python脚本,其输出交织在一起。例如,给定一个脚本:a=2b=3print(a+b)print(a*b)该实用程序将输出a=2b=3print(a+b)#>5print(a*b)#>6有人知道该实用程序的名称吗?我最难找到它。谢谢你!描述的实用程序没有标......
  • a method to make some handy tools with python
    Inmyworkingofcomputer,therearealotofsimplejobsthatarefrequentlyrepeated.Itriedtofindawaytomakethesejobbeenprocessedeasily.Method1:Themethodiswritingascripttodothejob,andexecutingthescriptbyutoolsextensionuto......
  • Python网络爬虫详解:实战豆瓣电影信息采集
    文章目录前言一、爬虫是什么?二、常用库及其作用1.Requests2.BeautifulSoup3.lxml4.Scrapy5.Selenium6.PyQuery7.Pandas8.JSON9.Time三、实现步骤步骤一:环境准备步骤二:数据采集步骤三:数据处理步骤四:数据存储总结前言随着互联网的迅猛发展和数据分析需求的不......
  • python学习之内置函数
    Python拥有许多内置函数,这些函数是Python的一部分,不需要额外导入即可直接使用。这些函数提供了对Python解释器功能的直接访问,涵盖了从数学计算到类型检查、从内存管理到异常处理等各个方面。下面是一些常用的Python内置函数及其简要说明:一、Printprint函数大家都不会......
  • Python中以函数为作用域
    点击查看代码#第一题foriteminrange(10):#不报错,没有函数,所有操作在全局作用域里面执行,item最后赋值为:9,此时item在缩进与全局都可以使用passprint(item)#第二题item=10deffunc():foriteminrange(10):#优先在本地查找,找不到在到全局查找p......
  • 掌握IPython宏:%%macro命令的高效使用指南
    掌握IPython宏:%%macro命令的高效使用指南在编程中,宏是一种允许你定义可重用代码片段的强大工具。IPython,这个增强版的Python交互式环境,提供了一个名为%%macro的魔术命令,允许用户创建宏,从而提高代码的可重用性和效率。本文将详细介绍如何在IPython中使用%%macro命令创建宏,并......
  • 7月24号python:库存管理
    7月24号python:库存管理题目:​ 仓库管理员以数组stock形式记录商品库存表。stock[i]表示商品id,可能存在重复。原库存表按商品id升序排列。现因突发情况需要进行商品紧急调拨,管理员将这批商品id提前依次整理至库存表最后。请你找到并返回库存表中编号的最小的元素以便及......