排查测试脚本中ModuleNotFoundError: No module named 'kdconnector'问题
验证运行时PYTHONPATH的实际值
在测试脚本最顶部添加以下代码,运行后查看输出,确认C:\Users\MikeOliver\KDConnectorSite是否在路径列表中:import sys print(sys.path)注意Windows路径的大小写问题,即使系统不敏感,Python的路径匹配偶尔会出现差异。
检查模块目录的完整性
确认kdconnector目录下存在__init__.py文件(可以是空文件),Django项目通常依赖该文件识别Python模块。同时核对目录结构是否与预期一致:KDConnectorSite/ ├── kdconnector/ │ ├── models.py │ └── __init__.py ├── kdconnectorsite/ │ ├── facebookapi/ │ │ ├── methods/ │ │ │ └── testing.py │ └── settings.py(Django核心配置文件) └── manage.py确认运行脚本的工作目录
若在终端运行脚本,确保当前工作目录为C:\Users\MikeOliver\KDConnectorSite;或手动设置PYTHONPATH后再运行:
Windows cmd:set PYTHONPATH=C:\Users\MikeOliver\KDConnectorSite python kdconnectorsite/facebookapi/methods/testing.pyPowerShell:
$env:PYTHONPATH = "C:\Users\MikeOliver\KDConnectorSite" python kdconnectorsite/facebookapi/methods/testing.py核对Python解释器一致性
对比VSCode左下角显示的解释器版本与终端中python --version的输出,确保使用的是同一个Python环境(包括虚拟环境)。若使用虚拟环境,需先激活环境再设置PYTHONPATH并运行脚本。通过Django Shell验证导入逻辑
运行python manage.py shell,在交互环境中执行导入语句:from kdconnector.models import Master, ClientAccounts, Client, Campaigns, Ads若该操作成功,说明测试脚本未加载Django环境配置,需在脚本开头添加初始化代码:
import os import django os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'kdconnectorsite.settings') django.setup() # 后续导入模型 from kdconnector.models import Master, ClientAccounts, Client, Campaigns, Ads检查PYTHONPATH的持久化生效情况
若通过系统环境变量设置PYTHONPATH,需重启终端或VSCode确保配置生效;避免仅在VSCode的launch.json中设置PYTHONPATH,但终端运行时未同步该配置。
内容的提问来源于stack exchange,提问作者Mike Oliver

