如何解决 VSCode Jupyter Notebook 中 Pylance“导入无法解析”问题?

问题描述 投票:0回答:6

我正在尝试将文件 query_creative.py 中的函数 query_creative 导入到笔记本 Notebook.ipynb 中。文件层次结构是这样的:

    ├───playground
    │    Notebook.ipynb
    ├───src
    ├───queries
         query_creative.py

我在笔记本中使用的代码如下:

import sys
sys.path.append('..')
from src.query.query_creative import query_creative

事情就成功了。但是,Pylance 在包含函数 import 的行上加了下划线,并显示消息:“导入无法解析”,当我稍后使用此函数时,它可以工作,但 Pylance 会再次强调它。我尝试修改setting.json,但似乎没有任何效果。我预先感谢您的帮助!

visual-studio-code jupyter pylance
6个回答
4
投票

我最终通过将 VS Code 的 Jupyter 扩展降级到 v2022.4.1001071005 解决了这个问题。谢谢大家的帮助!


2
投票

您使用的是哪个版本的 VS Code?更新到 1.70 后我遇到了同样的问题。

UPD。

降级到 1.69.2 解决了该问题。但是,我有另一台 1.70 的笔记本电脑,并且具有完全相同的笔记本电脑,则不存在此问题,因此如果您想坚持使用 1.70 左右,则值得尝试完全删除 vscode 并再次安装。

UPD2。

过了一段时间,我的降级在另一台机器上没有帮助,所以我比较了它们之间的 Pylance 输出差异,发现“工作”实例使用旧版 jupyter 笔记本支持,而“有问题”则使用“LSP”。禁用选项 Pylance Lsp Notebooks Enabled 一切正常并解决了该问题


0
投票

pylance 似乎无法确定代码是否可导入。您可以使用代码创建一个 Python 包,然后执行以下操作,而不是在脚本开头修改路径:

cd your-project
pip install -e .

您可以在此处查看创建包的指南。

通过这些设置,pylance 和任何其他编辑器/IDE 将能够正确识别您的项目。

请注意,在 VSCode 中,您可以切换解释器,因此请确保选择安装代码的解释器:


0
投票

https://blog.csdn.net/qq_41019681/article/details/111193080

"python.analysis.extraPaths": [
        "D:\\ProgramFiles\\Anaconda3-2021.05\\lib\\site-packages"
    ]

添加“python.analysis.extraPaths”通过

import package_name as pkg 
print(pkg.__file__)

0
投票

对于任何仍然感兴趣的人: 这是一个已知问题,已在 VS-Code 1.74 及更高版本中通过最新的 Jupyter、PyLance 和 Python 扩展进行修复。 因此,更新、重新加载所有扩展并重新启动 Jupyter 内核应该可以修复它。

参考这两个问题:
https://github.com/microsoft/pylance-release/issues/3035
https://github.com/microsoft/vscode-jupyter/issues/11038


0
投票

出于某种原因,这种情况有时会发生。要“修复”该行为,请按“文件”>“新建文件”>“Python”,按 ctrl + ~ 打开终端,然后尝试导入任何库以查看其是否有效。然后关闭jupyter笔记本并重新打开它,就不会出现这个问题了,至少一段时间内......

© www.soinside.com 2019 - 2024. All rights reserved.