为什么pylance无法解析本地相对路径导入VSCode?

问题描述

环境:

  • Python 3.6.9
  • VSCode
  • 皮兰斯

我在 VSCode 中工作区的结构是:

.../sync
├── README.rm
├── script-program-1
│   ├── lib
│   │   ├── __init__.py
│   │   └── queries.py
│   └── sync.py
├── lib
│   ├── __init__.py
│   ├── config.yaml
│   ├── logging.yaml
│   └── sync_config.py
└── requirements.txt

我已将 "python.analysis.extraPaths": ["./lib"] 添加到位于 sync\.vscode 的 settings.json。

问题是在sync.py 脚本中,我在导入lib.queries 时遇到了问题。 如果我尝试 from .lib.queries import *,pylance 不会抱怨,但会失败并显示错误 attempted relative import with no kNown parent package

如果我改为使用 from lib.queries import * python3 按预期工作但 pylance 抱怨说 Import "lib.queries" Could not be resolved(PylancereportMissingImports)

我可以更改什么才能使导入工作并且 pylance 没有问题?

更新 如果我将 ./script-program-1 添加到 settings.json python.analysis.extraPaths 问题就会消失。我遇到的问题是这个项目可能有数百个“script-program-X”文件夹,并且所有这些文件夹都可能有自己的本地导入文件。在我使用过的 VSCode 机器上,为每个人更新这个 extraPaths 变量并不理想。

我尝试过使用像“./${relativeFileDirname}”这样的变量以及像“./**”和“./*”这样的通配符,但这些都不起作用。

我知道这个问题是因为工作区根是同步文件夹而不是 script-program-1 引起的,但这就是我想要的设置方式。有人有解决办法吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...