VS code中python相对包导入问题解决

Python相对导入与绝对导入:彻底告别ImportError路径导包陷阱 Python模块导入机制看似简单,实则暗藏陷阱。相对导入与绝对导入是两种核心写法,其本质区别在于解释器如何基于sys.path和__package__解析模块名。相对导入写起来简短,但一旦脚本被直接运行、项目存在多入口、目录发生迁移或工具链介入,就容易触发ImportError或模块找不到等诡异错误,在爬虫脚本、数据分析流程及业务项目中反复造成故障。绝对导入则通过固定项目根目录作为锚点,结合python -m启动、pyproject.toml打包或PYTHONPATH设置,让模块解析保持入口无关的确定性。理 阅读详情
AI摘要

本文讲述了作者在VSCode环境下遇到Python包导入问题,从尝试相对导入失败到利用sys.path解决的过程,最终通过在call.py中添加当前目录到模块搜索路径得以调用外部模块。,

1. 项目结构:

我的项目文件结构为

├── folder1
│   └── module1.py
├── folder2
│   └── call.py

其中,module1.py就是实现了一个简单的加法:

def my_add(a, b):
    return a + b

而folder2里面的call.py尝试调用上面这个函数:

print(my_add(1, 2))

2. 初始的包导入方法

在包导入这方面,我一开始是尝试使用相对包导入,为:

from ..folder1.module1 import my_add
print(my_add(1, 2))

但是出现了下面的错误:
ImportError: attempted relative import with no known parent package
之后我尝试了配置launch.json文件,.vscode中的settings.json文件,以及创建一个dev.env,来配置包路径,但是都失败了。我参考的文章是:
VSCode Python同项目内的import问题

3. 最终的解决方法

最终我还是选择在call.py中使用sys库,最终代码为:

import sys
# 在模块搜索路径的开头插入新路径
sys.path.insert(0, './')

from folder1.module1 import my_add

print(my_add(1, 2))

终于调用成功了。虽然这个方法有点笨,但是解决了问题。

新手避坑!VS Code 使用 Run Code 运行Python总是报错怎么办?(Run Code/运行 Python报错如何解决?) 🐍 在 VS Code 中运行 Python 脚本时,遇到 `ModuleNotFoundError` 错误?本文解析了导致该错误的常见原因,并提供了详细的解决方案和示例,帮助你快速定位并解决问题,提升开发效率! 阅读详情

相关推荐

微带天线理论学习笔记(1)

微带天线的概念是由Deschamps于1953年提出来的,它是在一块厚度远小于工作波长的介质基片的一面敷以金属辐射片、一面全部敷以金属薄层作接地板而成。辐射片可以根据不同的要求设计成各种形状。微带天线具有质量轻、体积小和易于制造等优点,广泛应用于个人无线通信中。

qq_36521926的博客 6225

使用VScode开发python 在VScode中导入python库

使用Vscode开发python,怎么在Vscode中加入python库

cx_cxyygm的博客 8848

一种高超声速飞行器弹道的仿真方法

设计并实现了一个高超声速飞行器弹道仿真算法,并应用到基于OSGEarth的态势中。

eyepeak的博客 6542

解决vscode的导包问题

然后重启vscode即可。该配置对同一个项目的其他文件、文件夹均有效。该种方式只能针对该文件使用,更换到同一个项目的其他目录就无法使用了。打开设置->settings.json向其中添加。2.更改vscode的配置。

qq_45689158的博客 1476

MATLAB图像去噪实战:如何用巴特沃斯滤波器完美去除横条纹(附完整代码)

本文详细介绍了如何使用MATLAB中的巴特沃斯滤波器有效去除图像中的横条纹噪声。通过频域分析和滤波处理,结合完整的代码示例,帮助读者掌握从噪声分析到参数优化的全流程技术,实现高质量的图像去噪效果。

weixin_30566063的博客 562

VC Spyglass调试秘籍:从Lint报错到代码修复的完整工作流

本文详细介绍了VC Spyglass调试的完整工作流,重点解析了如何高效定位和修复Lint检查中常见的XMRE-L跨模块引用错误。通过对比GUI与命令行(vc_static_shell)双模式调试技巧,并结合TCL脚本实现批量处理与规则豁免,帮助数字设计工程师系统化地提升代码调试效率与质量。

weixin_29246195的博客 575

vscode运行python代码遇见的目录不对导致导包问题的错误

pythonpath填写自己本地项目的位置,不要把该文件通过git或svn这些上传的仓库,避免坑了别人哈哈哈哈。添加成功后,在自己的项目文件夹就可以看到有一个.vscode的配置。

weixin_45625596的博客 807

zynq7020的arm A9核降频实录

zynq arm9 cortex a9 降频

qq_40011737的博客 8764

VSCode中Python自动导包设置【备忘录】

VSCode中Python自动导包设置

Jici_Zeroten的博客 6440

【OpenClaw从入门到精通】第20篇:OpenClaw实战—从零搭建教育自动化助教系统(作业批改+智能答疑+学情分析)【2026实测】

本文基于OpenClaw开源框架,聚焦教育行业“答疑重复、批改耗时、学情模糊”三大核心痛点,提供从环境部署到功能落地的全流程实操方案。通过整合QQ群交互、代码分析、数据可视化等技能,构建“智能答疑+作业批改+学情分析”的自动化助教系统。系统支持7×24小时群聊答疑、多语言作业自动评审、学情数据周报生成,经实测可使助教工作时间减少60%、作业批改效率提升5-10倍、学情问题识别提前5周。文中包含完整配置步骤、可直接运行的代码示例及避坑指南,兼顾新手入门与进阶实操,帮助教育工作者快速落地自动化工具,从重复劳动中

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 1449

Vue 网络处理 - axios 异步请求的使用,请求响应拦截器(最佳实践)

axios 用来在前端页面发起一个异步请求,请求之后页面不动,响应回来刷新局部.1.为什么不使用 ajax 呢?官方:在 jQuery 中推荐使用 ajax 技术, Vue 里面不推荐使用 jQuery 框架,因此 Vue 更推荐使用 axiox 异步请求库(axios并不是 vue 官方库).2.axios 特性可以从浏览器中创建 XMLHttpRequests可以从 node.js 中创建 http 请求.支持 Promise API.支持拦截请求和响应.转换请求数据和响应数据.

CYK_byte的博客 1万+

macOS本地python环境/vscode/导入python包/设置python解释器

(1)在终端或者vscode终端(command+J快捷键打开vscode终端)中输入以下命令,查看本地安装了哪些包。(3)红框标注的就是自己的python解释器路径,填入vscode中。关键字,找到默认python解释路径(红框标识),默认情况下显示。点击左边的“插件”按钮,安装这三个插件。点击左下角的“设置”按钮,选择“设置”6. 安装python文件中需要的包。(1)打开终端(“聚焦搜索”终端)4. 设置python解释器。2. 安装vscode。,新建python文件。在桌面新建一个文件夹。

小染的学习笔记 1万+

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

解决VS Code中Python模块导入路径问题的完整指南

在使用VS Code开发Python项目时,我们经常会遇到这样一个常见但令人困扰的问题:当我们尝试单独调试位于子目录中的Python文件时,由于该文件中的导入语句是从工作区根目录开始编写的,VS Code会报告"ModuleNotFoundError"错误。这个问题在大型项目或遵循特定目录结构的项目中尤为常见。这样,无论在项目的哪个子目录中,都可以正常导入项目中的模块。

羊城迷鹿的博客 3436

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

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

最近在学习Python, 需要用到自己定义的工具类模块,总结下来主要遇到两个问题 如何导入自定义模块 解决VS Code 警告Import [module] could not be resolved in Pylance 和实现包高亮与转到定义 首先准备我们的测试文件,目录结构如下 D:\IMPORT_LOCAL_PACKAGE ├─.vscode │ launch.json │ setting.json │ ├─mycode │ test.py │

KEEP MOVING. 2万+

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

关于VS Code调试Python时的路径问题

0.问题 在Python中按F5执行py文件时,默认是从当前打开的文件夹目录为执行路径。如果main入口在文件夹顶层还好,如果在子文件夹就会有些问题,比如相对路径导入模块时会报错。 如下,我执行子文件夹目录的moduleb.py,就报错说找不到另一个文件夹的模块(在main.py导入moduleb是正常的): 通过打印当前执行目录,可以发现路径还在VS Code打开文件夹的顶层目录: import os print(os.getcwd()) 百度了一下VS Code在当前文件目录执行的.

龚建波 3万+

VS Code安装详细教程及vs code配置,看这一篇就够了

VS Code安装详细教程及vs code配置

2301_78095812的博客 6万+

彻底解决Python导入难题:Ruff相对导入检查实战指南

你是否还在为Python项目中的相对导入错误抓狂?团队协作时因导入风格不统一而频繁踩坑?本文将带你掌握Ruff(一个用Rust编写的超快速Python代码检查工具)的相对导入检查功能,5分钟内解决90%的导入问题。读完本文你将获得: ✅ 区分相对导入与绝对导入的清晰判断框架 ✅ 零代码配置Ruff导入检查规则的实操步骤 ✅ 10个真实项目导入错误的修复案例 ✅ 自动化修复导入问题的...

gitblog_00645的博客 1036

Python学习之VS Code

下载 Visual Studio Code Python 安装插件 json 暂无深究,简单了解 创建或打开文件夹后 settings.json中有python的安装地址 launch.json可自己加上"cwd": “${fileDirname}” Vscode的相对路径读取问题及处理 vscode相对路径:相对于工作路径(.vscode文件夹所在的位置) 可能出现的异常: 发生异常: ...

Leslie_Waong的博客 484

【保姆级教程】VS Code安装配置Python、Jupyter、C

介绍如何安装VSCode、miniconda,介绍如何在VSCode配置Python、Jupyter、C,并附有截图等详细步骤,小白极度友好

weixin_46578004的博客 2万+

VS Code 导入自定义包报错"No module named 'xxx' "

在学习Python的过程中,使用VS Code 进行编程时,导入自定义的Python包,报错:“No module named ‘processdata’ ” 原理: 1、如果在当前文件目录底下可以找到导入的包,那么可以直接使用from … import … 2、如果在当前文件目录底下找不到导入的包,则需要向sys.path添加包的所在的绝对位置。 解决方法: 当前文件为ExtractAndSave.py,那么则需要在该文件开头添加以下代码: import sys,os BASE_DIR = os.pat

liqiang12689的博客 3362

VS Code中使用Python相对路径问题

在VS Code环境运行Python脚本有一个困扰,举个例子:我的工作目录是/Python_Work,我在工作目录中创建了文件/Python_Work/Part-02/test.py, 并且运行test.py生成了file.txt文件: with open('file.txt', 'w') as f: f.write('HelloWorld') 我们以为file.txt在/Python_Work/Part-02/路径下,和创建它的test.py在一个路径中。结果file.txt这个文件却在/Pyt

极地语音工作室:专注语音处理、Praat脚本、TextGrid标注、声学分析与相关AI工具实践。 2108

VS Code中使用python载入图片时,(图片与代码在同一个目录下)使用相对路径程序不能识别该路径——工作空间配置问题

VS Code

ZacharySong的博客 2081

PyCharm 2024.2 与 VS Code 环境配置:解决 Python 模块导入的 3 种路径设置方法

本文详细介绍了在PyCharm 2024.2和VS Code中解决Python模块导入问题的3种路径设置方法,包括配置IDE识别项目根目录、使用相对导入与包结构以及动态修改sys.path。特别针对常见的ModuleNotFoundError错误提供了实用解决方案,帮助开发者高效配置开发环境。

weixin_30216561的博客 405

Python模块导入实战:解决ModuleNotFoundError与相对导入问题

Python模块是代码复用和工程化协作的基础单元,其核心原理在于文件系统路径映射与运行时动态加载机制。理解sys.path的搜索顺序、__init__.py的包声明作用以及相对导入的上下文约束,是规避ModuleNotFoundError、ImportError和循环导入等高频问题的关键。技术价值体现在提升代码可维护性、支持团队协作与CI/CD流程,并为微服务、插件系统和AI服务化架构提供模块化底座。典型应用场景包括数据工具库封装、Flask/Django项目结构组织、Jupyter开发环境适配及Docke

weixin_29574585的博客 342

AI如何帮你解决Python相对导入错误

相对导入必须基于正确的包结构。脚本应以模块方式运行(-m参数)。AI工具能显著提高调试效率,尤其是对复杂导入问题的诊断。如果你也遇到类似问题,可以尝试用InsCode(快马)平台快速验证代码。它的在线编辑器和AI辅助功能让调试变得非常方便,尤其是对于包结构和导入问题,能实时反馈错误并提供修复建议。希望这篇笔记能帮你少走弯路!

SilvermistRaven28的博客 317
上一篇: linux服务器上screen常用命令
下一篇: 在vscode上面进行分支merge的记录
廿载风光同笑泪
博客等级 码龄7年 116粉丝 42原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值