从根本上优雅地解决 VSCode 中的 Python 模块导入问题

本文讲述了作者在运行测试脚本时遇到的ModuleNotFoundError,通过尝试相对导入、动态添加sys.path以及最终设置VSCode的settings.json来解决Python模块导入问题,强调了在开发过程中管理和配置环境变量的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

整体概述:
在我尝试运行 test_deal_file.py 时,我遇到了一个 ModuleNotFoundError 错误,Python告诉我找不到名为 controllers 的模块。这意味着我无法从 deal_file.py 中导入 read_excel 函数。

为了解决这个问题,我尝试了几种方法。
首先,我使用了相对导入,这在不改变当前工作目录的情况下是有效的,但一旦我切换了目录,这个方法就不行了。
接着,我尝试动态地将当前工作目录添加到 sys.path 中。
这样做虽然有效,但我觉得这种方法不够优雅。

所以,我决定采取一种更彻底的解决方案。
我通过修改 VSCode 的 settings.json 文件,设置了 PYTHONPATH 环境变量,确保了我的项目路径 my_project 被加入到模块搜索路径中。
我在settings.json中为不同的操作系统配置了terminal.integrated.env` 部分,然后重启了虚拟环境和集成终端。重新运行我的文件后,问题终于解决了。

通过这篇文章,我想和大家分享如何以一种更优雅的方式解决 Python 项目中的模块导入问题。
同时,我也介绍了如何在 VSCode 中管理项目环境变量和运行路径,这对于解决开发过程中的环境配置问题非常有帮助。希望我的经验能成为其他开发者在面对类似问题时的宝贵资源。

我的问题解决过程

(想直接看解决教程的直接跳到下一个标题内容)
我的项目结构是这样的

my_project/
├── controllers/
│   ├── __init__.py     
│   └── deal_file.py     
└── tests/
    ├── __init__.py      
    └── test_deal_file.py 

结果运行test_deal_file.py会出现报错信息:

评论 19
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值