【Python】VS Code导入本地工具包和消除`Import [module] could not be resolved in Pylance`

本文介绍了如何在VS Code中导入并解决Python自定义本地包的导入问题,以及消除Pylance关于未找到模块的警告。通过修改settings.json配置文件,将本地包路径加入,并在Python脚本中正确导入,实现了模块的正常使用和智能提示功能。
Python3.8

Python3.8

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

最近在学习Python, 需要用到自己定义的工具类模块,总结下来主要遇到两个问题

  • 如何导入自定义模块
  • 解决VS Code 警告Import [module] could not be resolved in Pylance 和实现包高亮与转到定义

首先准备我们的测试文件,目录结构如下

D:\IMPORT_LOCAL_PACKAGE
├─.vscode
│      launch.json
│      settings.json
│      
├─mycode
│      test.py
│      
└─utils
        util_1.py
        util_2.py

在这里插入图片描述

首先将 utils路径加入 setting.json, 在根目录.vscode文件夹中新建 settings.json 文件,内容如下,目的是将本地包纳入VsCode分析行列, 注意这里是相对路径(相对于根目录),不能写成 {workspaceRootFolder/utils}写完后记得重启VS Code

{
    "python.analysis.extraPaths": [
        "utils"
    ]
}

在test.py中导入两个工具包, 这里先把自定义路径加入path变量以便Python解析,然后导入自定义的包

import sys
import os
from os import path

# 两种方式,总有一种可以导入或者高亮
# sys.path.append(path.dirname(path.dirname(path.abspath(__file__))) + os.sep + "utils")
# from utils.util_1 import Utils_1
# from utils.util_2 import Utils_2

sys.path.append(path.dirname(path.dirname(path.abspath(__file__))))
from utils.util_1 import Utils_1
from utils.util_2 import Utils_2

class TestFile:

    @staticmethod
    def call():
        print("test.py")


if __name__ == "__main__":
    TestFile.call()
    Utils_1.call()
    Utils_2.call()

测试下结果,首先运行看有无错误
在这里插入图片描述
然后智能提示和转到定义
在这里插入图片描述
这样就解决了自定义模块的导入以及智能提示的设置😎

参考资料:

1. pylance-release :Troubleshooting
2. python 导入自定义包-引包机制

您可能感兴趣的与本文相关的镜像

Python3.8

Python3.8

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值