VSCode环境下pylint报错无法导入自定义模块 如何实现无src前缀导入
解决方案
你遇到的问题核心是pylint默认不会读取VSCode的python.autoComplete.extraPaths配置,也不会自动识别.env里的PYTHONPATH设置,需要单独给pylint配置源文件路径,有以下几种可行方案:
方案1:在VSCode的settings.json中添加pylint路径配置
直接在你现有的.vscode/settings.json里新增pylint启动参数,告诉pylint把src目录加入导入搜索路径:
{ "python.pythonPath": "/usr/local/opt/python@3.9/bin/python3.9", "python.envFile": ".env", "python.autoComplete.extraPaths": ["./src"], // 新增以下pylint配置 "python.linting.pylintArgs": [ "--init-hook", "import sys; sys.path.insert(0, './src')" ] }
配置完成后重启VSCode窗口,pylint就可以识别my_package的导入了。
方案2:项目根目录新增.pylintrc配置文件
在main_folder下新建名为.pylintrc的文件,写入以下内容:
[MASTER] init-hook='import sys; sys.path.insert(0, "./src")'
这个方案的好处是配置跟着项目走,哪怕换设备打开项目也不需要重新改VSCode配置。
方案3:修改.env文件的PYTHONPATH为绝对路径
部分情况下pylint读取相对路径会出错,你可以把.env里的PYTHONPATH=./src改成对应src目录的绝对路径,示例:
PYTHONPATH=/Users/xxx/works/main_folder/src
这个方案配合VSCode的Python插件默认的pylint集成也可以生效,缺点是换设备后需要修改路径适配。
所有配置修改完成后,可按下
Ctrl+Shift+P(Mac为Cmd+Shift+P),执行「Developer: Reload Window」重启VSCode窗口让配置立即生效。
内容的提问来源于stack exchange,提问作者Artur Barbosa
相关产品推荐
相关产品推荐

