假设我有一个具有以下文件结构的项目:
project_dir
└── src
├── package1
│ └── module1.py
└── package2
└── module2.py当我想在其他模块中使用来自module1的类时,我键入如下
class SomeNewClass(ClassFromModule1): # here I press ctrl-space to make auto-import
...当Pylance进行自动导入时,它总是从项目的根目录开始,所以我得到了这个自动导入:
from src.package1.module1 import ClassFromModule1问题是我的工作目录是src,我想
from package1.module1 import ClassFromModule1有任何方法来修复自动导入Pylance功能的根路径吗?
发布于 2022-09-05 06:49:24
默认情况下,如果您在src中导入一个模块,它应该如下所示(效果与您想要的一样)。


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

默认启用(选中)此项。如果它被修改为关闭,请重新打开它.
下面是一些示例:
文件夹结构:
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文件夹。然后导入部分的代码如下所示:


https://stackoverflow.com/questions/73599783
复制相似问题