VSCode中Python导入自动补全正常但运行时模块找不到求助
解决VSCode中Python模块导入运行报错问题
问题场景
项目目录结构:
project ├── .env └── folder_a ├── my_program.py my_packages ├── __init__.py └── packages_i_made ├── __init__.py └── personal_functions.py
my_program.py中导入代码:
from packages_i_made import personal_functions as pf
配置.env文件(含PYTHONPATH="C:/Users/user_1/my_packages")并在VSCode工作区指定后,Pylance自动补全正常,但运行时仍报错:
Traceback (most recent call last): File "c:\Users\user_1\...\...\project\folder_a\my_program.py", line 1, in <module> from packages_i_made import personal_functions as pf ModuleNotFoundError: No module named 'packages_i_made'
解决方案
1. 修正.env文件格式
.env中不要给路径加引号,改成:
PYTHONPATH=C:/Users/user_1/my_packages
Windows环境下,引号会被解析为路径的一部分,导致Python无法识别正确的目录。
2. 确认VSCode加载.env的路径正确
打开VSCode工作区设置(Ctrl+,),搜索python.envFile,确保路径指向项目根目录的.env文件,示例:
"python.envFile": "${workspaceFolder}/.env"
修改后重启VSCode,确保配置生效。
3. 验证运行时的PYTHONPATH
在my_program.py开头添加以下代码,打印当前Python的搜索路径:
import sys print(sys.path)
运行后检查输出是否包含C:/Users/user_1/my_packages:
- 如果没有,说明.env未生效或系统环境变量配置有问题;
- 如果有,检查
my_packages下的目录结构和__init__.py是否正常。
4. 排查系统环境变量的PYTHONPATH配置
若你已将my_packages添加到系统PYTHONPATH:
- 打开系统环境变量(Win+R输入
sysdm.cpl→ 高级 → 环境变量),确认当前用户或系统的PYTHONPATH中存在C:/Users/user_1/my_packages; - 配置后必须重启VSCode,因为VSCode启动时才会读取系统环境变量。
5. 临时应急方案(快速验证)
如果以上方法暂时没生效,可以在代码中手动添加路径:
import sys sys.path.append("C:/Users/user_1/my_packages") from packages_i_made import personal_functions as pf
若这样能正常运行,说明问题确实出在路径配置未生效上,回到前面的步骤排查配置问题。
6. 检查__init__.py文件
确保my_packages和packages_i_made下的__init__.py文件为空或无语法错误,空文件即可满足包识别要求,无需额外代码。
内容的提问来源于stack exchange,提问作者h4zard
相关产品推荐
相关产品推荐

