【问题标题】:Python / Jupyter notebook not highlighting f-strings properlyPython / Jupyter 笔记本没有正确突出显示 f 字符串
【发布时间】:2021-11-20 08:20:20
【问题描述】:

以下是 Jupyter Notebook 和 2 个 Python 代码 sn-ps 的示例:

在 Jupyter 中,它大多数时候不会突出显示 f 字符串,只有当它是单个变量时,即使它被定义并用作 a+b 它也不会突出显示。

在 Python 中,如果定义了一个变量,它会突出显示该变量,但如果它有任何数学运算则不会,它只是不一致。

我尝试检查我的settings.json,但认为问题不在于它:

{
  "gitlens.advanced.messages": {
    "suppressShowKeyBindingsNotice": true
  },
  "workbench.iconTheme": "Monokai Pro (Filter Spectrum) Icons",
  "liveServer.settings.donotShowInfoMsg": true,
  "explorer.confirmDelete": false,
  "editor.tabSize": 2,
  "editor.rulers": [110],
  "workbench.startupEditor": "none",
  "editor.snippetSuggestions": "top",
  "workbench.statusBar.visible": true,
  "editor.suggestSelection": "first",
  "vsintellicode.modify.editor.suggestSelection": "automaticallyOverrodeDefaultValue",
  "python.pythonPath": "/opt/anaconda3/envs/abc/bin/python",
  "workbench.colorCustomizations": {
    "editorRuler.foreground": "#e1b525"
},
"python.autoComplete.addBrackets": true,
  "editor.wordWrapColumn": 200,
  "python.formatting.provider": "black",
  "launch": {
    "configurations": [],
    "compounds": []
  },
  "workbench.colorTheme": "One Dark Pro",
  "python.linting.mypyEnabled": true,
  "python.linting.pylintEnabled": true,
  "python.linting.enabled": false,
  "html.format.enable": false,
  "javascript.format.enable": false,
  "typescript.format.enable": false,
  "json.format.enable": false,
  "python.languageServer": "Pylance",
  "python.analysis.completeFunctionParens": true,
"kite.showWelcomeNotificationOnStartup": false,
"jupyter.askForKernelRestart": false,
"jupyter.textOutputLimit": 0,
"jupyter.alwaysTrustNotebooks": true,
"jupyter.sendSelectionToInteractiveWindow": true,
"workbench.editorAssociations": {
  "*.ipynb": "jupyter.notebook.ipynb"
},
"python.defaultInterpreterPath": "/opt/anaconda3/envs/abc/bin/python",
"[python]": {

  "gitlens.codeLens.symbolScopes": [
    "!Module"
  ],
  "editor.wordBasedSuggestions": false
}
}

也许这部分 "python.formatting.provider": "black" 可能会有所不同,但据我了解,它只是格式化,而不是突出显示。


更新

我的 Notebook 版本是 6.4.4,但我仍然有那个糟糕的高亮问题。

更新 添加不同主题的屏幕截图和我的.json 设置。

【问题讨论】:

  • 嗨乔纳斯,你好吗?你的问题解决了吗?似乎没有其他人试图帮助你。我实际上花了一些时间来帮助你。如果你投票给我的答案,我会很高兴????甚至选择它作为正确的✅。先感谢您。 ??????

标签: python visual-studio-code jupyter-notebook syntax-highlighting


【解决方案1】:

升级笔记本版本
这个 Github 链接(如下)表明您可能需要将笔记本版本升级到 4.4.1 或 5.0 甚至更高版本。
F-string Highlight Problem


  • 升级命令

使用此命令升级:pip install notebook --upgrade

注意:Anaconda 用户可能更喜欢conda update notebook


VS-Code 之外的 Jupyter Notebook
我尝试使用我的 Jupyter 笔记本并运行良好。

这就是 Jupyter 笔记本的样子 ??

{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Hello Behdad Moghadam! :)\n"
     ]
    }
   ],
   "source": [
    "behdad = \"Behdad Moghadam\"\n",
    "print(f\"Hello {behdad}! :)\")"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.6"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}


VS-Code 中的 Jupyter Notbook

我在 VS-Code 中将这个扩展用于 Jupyter Notebook ??

Jupyter Notebook VS-code extension marketplace

  • 结果
    它对我来说很好。

卸载并重新安装 Jupyter Notebook

这会将设置和配置重置为正常状态。

【讨论】:

  • 我的版本是6.4.4,但我仍然有那个糟糕的高亮问题。
  • 我更新了我的答案,希望对你有帮助。
  • 看起来你使用的是 conda 分布式版本的 jupyter notebook,而我使用的是 vscode 扩展。
  • 不,我没有使用conda,我只是通过cmd中的这个命令制作了笔记本:jupyter notebook
  • 我为 VS-code 添加了 Jupyter Notebook 扩展。希望对您有所帮助。
【解决方案2】:

能输出python文件和jupyter notebook的正确结果吗?

你试过切换颜色主题吗?

看起来更像是语言服务器问题。你能检查你的编辑器来验证它可以像这样正确地分析代码吗?

Command Palette -> Developer: Inspect Editor Tokens and Scopes

您应该在f"{a+5} test test 的每个字符之后找到meta.fstring.python

【讨论】:

  • 对我来说它是 string.quoted.single.python 而不是 meta.fstring.python,知道如何解决这个问题吗?
  • @Jonas Palačionis 你能看看 OUTPUT -> Python 语言服务器吗?
  • @Jonas Palačionis 你安装了 python 扩展和 pylance 扩展了吗?
  • 我有 pylance 和 python 扩展,我在哪里可以找到输出 -> python 语言服务器设置?
  • @Jonas Palačionis 在Debug ConsoleTerminal 旁边。
猜你喜欢
  • 2016-07-16
  • 2020-06-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多