已安装APScheduler仍报ModuleNotFoundError问题求助
解决APScheduler ModuleNotFoundError问题
问题现象
执行启动命令时触发模块找不到错误:
root@visa-service-5fcc84fc6f-hfhxn:~/visa# python3.10 main_api.py Traceback (most recent call last): File "/root/visa/main_api.py", line 3, in <module> from task.refresh_token import RefreshToken File "/root/visa/task/refresh_token.py", line 3, in <module> from apscheduler.schedulers.background import BackgroundScheduler ModuleNotFoundError: No module named 'apscheduler'
已尝试执行pdm add APScheduler和pdm add apscheduler安装依赖,项目pyproject.toml中也已声明apscheduler>=3.10.4,但问题仍未解决。
排查与解决步骤
1. 激活PDM虚拟环境后运行
PDM安装的依赖默认存放在专属虚拟环境中,直接使用系统python3.10执行脚本会读取全局包,无法访问虚拟环境内的依赖:
- 检查是否已激活虚拟环境:执行
echo $VIRTUAL_ENV,无输出则说明未激活 - 激活虚拟环境:
激活完成后再运行pdm shellpython main_api.py
2. 用PDM Run命令直接执行脚本
跳过环境激活步骤,直接通过PDM调用虚拟环境内的解释器运行脚本:
pdm run python main_api.py
3. 强制重新同步所有依赖
可能存在依赖安装不完整或缓存异常,执行以下命令清理现有依赖并重新安装:
pdm sync --clean
4. 验证Python解释器一致性
确认启动脚本使用的Python解释器与PDM依赖环境的解释器一致:
- 查看PDM使用的Python路径:
pdm info --python - 查看系统
python3.10路径:which python3.10
若路径不同,需使用PDM对应的解释器路径运行脚本,示例:
/path/to/pdm/python main_api.py
5. 临时全局安装(不推荐)
若以上方法均无效,可临时将APScheduler安装到系统Python环境用于测试:
python3.10 -m pip install apscheduler>=3.10.4
注:该方式会破坏项目依赖隔离性,仅作为临时排查手段,长期使用仍建议通过PDM管理环境。
内容的提问来源于stack exchange,提问作者Dolphin
相关产品推荐
相关产品推荐

