VS Code调试Python项目遇PackageNotFoundError问题求助
问题:VS Code调试Python项目时触发PackageNotFoundError
项目调试配置(launch.json)
{ "version": "0.2.0", "configurations": [ { "name": "Python: myproject", "type": "python", "request": "launch", "program": "E:\\<path>\\__main__.py", "cwd": "${workspaceFolder}", "env": {"PYTHONPATH": "${cwd}" }, "args": [ "publish", "--config=E:\\<path>\\config.yaml" ], } ] }
报错信息
Exception has occurred: PackageNotFoundError No package metadata was found for myproject
importlib.metadata.PackageNotFoundError: No package metadata was found for myproject
已尝试操作
- 执行
pip install importlib.metadata,无效果
报错相关代码片段
import atexit, copy, getopt, importlib.metadata, json, logging, os, re, signal, shutil, sys, textwrap, time, urllib
. . .
return importlib.metadata.version(package)
解决方法
1. 将项目以开发模式安装到当前环境
importlib.metadata.version(__package__)依赖Python包的元数据,需要项目被识别为已安装的包:
- 检查项目根目录是否存在
setup.py或pyproject.toml,若没有,创建基础的setup.py:
from setuptools import setup, find_packages setup( name="myproject", version="0.1.0", packages=find_packages(), )
- 在项目根目录执行命令:
pip install -e .
(开发模式安装后,代码修改无需重新安装,包元数据会被正确识别)
2. 临时修改版本检测代码(应急方案)
如果仅需临时调试,可绕过元数据检测:
将报错代码中的版本获取行替换为固定版本字符串:
# 替换原return语句 return "0.1.0"
3. 验证PYTHONPATH与工作目录配置
- 确认
launch.json中的${workspaceFolder}指向项目根目录(包含myproject包文件夹的上级目录) - 若路径存在问题,可将
PYTHONPATH改为具体路径,例如:
"env": {"PYTHONPATH": "E:\\<path>\\项目根目录"}
4. 确保解释器环境匹配
从使用的解释器来看是虚拟环境,需确认已在该虚拟环境中执行了步骤1的安装命令,避免环境不匹配导致包元数据无法被读取。
内容的提问来源于stack exchange,提问作者Airwave
相关产品推荐
相关产品推荐

