首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >vscode/pylance自动导入不正确的根路径

vscode/pylance自动导入不正确的根路径
EN

Stack Overflow用户
提问于 2022-09-04 13:27:02
回答 1查看 317关注 0票数 2

假设我有一个具有以下文件结构的项目:

代码语言:javascript
复制
project_dir
└── src
    ├── package1
    │   └── module1.py
    └── package2
        └── module2.py

当我想在其他模块中使用来自module1的类时,我键入如下

代码语言:javascript
复制
class SomeNewClass(ClassFromModule1):  # here I press ctrl-space to make auto-import
    ...

当Pylance进行自动导入时,它总是从项目的根目录开始,所以我得到了这个自动导入:

代码语言:javascript
复制
from src.package1.module1 import ClassFromModule1

问题是我的工作目录是src,我想

代码语言:javascript
复制
from package1.module1 import ClassFromModule1

有任何方法来修复自动导入Pylance功能的根路径吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-09-05 06:49:24

默认情况下,如果您在src中导入一个模块,它应该如下所示(效果与您想要的一样)。

因此,请检查是否修改了vscode中的下列设置:打开设置、和搜索分析:自动搜索路径

默认启用(选中)此项。如果它被修改为关闭,请重新打开它.

下面是一些示例:

文件夹结构:

代码语言:javascript
复制
Project_dir
├─ folderone
│  └─ package3
│     └─ moudle3.py  # --class C
├─ src
│  ├─ package1
│  │  └─ moudle1.py  # --class A
│  └─ package2
│     └─ moudle2.py  # --class B
└─ Test.py

如果您在文件夹中导入模块(默认情况下启用了上述设置):导入代码将不包括package1.moudle1导入A中的src (如上图所示)

如果关闭了上述功能,则导入代码如下:

  • 如果在其他文件夹下导入模块:导入代码将从当前工作区下的第一级文件夹开始。

注释: vscode使用当前打开的文件夹作为工作区。因此,您打开的文件夹级别也会影响导入部分中的代码。

上面的示例是在vscode中将Project_dir文件夹作为工作区打开。

如果我将Project_dir放入一个新文件夹,ImpDemo并在vscode中打开ImpDemo文件夹。然后导入部分的代码如下所示:

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73599783

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档