python - 在 pyright 中修复“无法解析导入 [模块]”
问题描述
我使用 pyright 进行类型检查,我也使用 pytest 在 Visual Studio Code 中进行测试。我的测试的文件夹结构是在包 root 中有一个 'test' 子文件夹。例如
|
MyPackage
|-- __init__.py
|-- MyModule.py
|--test
|-- __init__.py
|--MyModule_test.py
我正在组织这样的事情,因为会有很多包裹,我想让事情井井有条。在pytest里面我有
import pytest
import MyPackage.MyModule
...
Pytest 能够发现测试并正常运行它们,因为它具有调整其sys.path
(或某些东西)的特殊能力。但是,pyright 只会抱怨它无法导入模块,
Import 'MyPackage.MyModule' could not be resolvedpyright (reportMissingImports)
. 这是有道理的,但是有什么方法可以解决这个问题,无论是在 pyright 还是在 Visual Studio Code 设置中,以阻止这种抱怨?
解决方案
您可以将库路径添加到路径变量。
import sys
sys.path.insert(1, str('..'))
import MyModule
要使 Pylance 能够正确使用您的库(用于自动完成...),请使用以下步骤:
默认情况下,Pylance 包含工作区的根路径。如果您想包含其他子目录作为导入解析路径,您可以使用python.analysis.extraPaths
工作区的设置添加它们。
- 在 VS Code 中按 +<,> 打开设置。
- 输入
python.analysis.extraPaths
- 选择“添加项目”
- 输入你的图书馆的路径'..'
推荐阅读
- php - Laravel Artisan 命令在从代码中使用时不起作用
- java - 阅读基本 InputStream - Java
- c# - Selenium C# Mstest - chromedriver.exe 不存在。Getdirectory() 在执行 vis mstest 命令时引用其他目录
- python - 超过maxsize时如何在日志文件夹中创建多个日志文件
- maven - 在 jetty 中部署 RAP .war 文件
- c# - 如何使用实体框架c#显示三个表的值与表中关联的外键?
- javascript - 仅在谷歌浏览器中删除 Summernote 中的字符时出错
- react-native - 如何在 react-native-mapbox-gl 中实现可拖动标记?
- c++ - 绘制简单多边形时出现 Qt C++ 错误
- mariadb - 在 MariaDB 10.3 中允许对特定用户进行外部访问