Windows Server环境下MLFlow安装报错:AttributeError: 'EntryPoints' object has no attribute 'get'
解决Windows Server 2022上MLFlow安装的依赖冲突问题
问题根源分析
Python 3.12开始移除了setuptools中的pkg_resources模块(已被标记为废弃),而MLFlow的部分依赖仍在调用旧的EntryPoints.get()方法,这与新版本importlib-metadata的API不兼容,导致了连锁报错。
分步解决方法
1. 清理现有依赖环境
先卸载所有相关包,避免版本混乱:
pip uninstall -y mlflow setuptools importlib-metadata importlib-resources
2. 安装兼容版本的基础依赖
指定保留pkg_resources的最后稳定版setuptools,同时锁定支持EntryPoints.get()的importlib-metadata版本:
pip install setuptools==68.2.2 importlib-metadata==6.11.0
注:setuptools 68.x系列是最后保留
pkg_resources的稳定版本;importlib-metadata 6.x系列仍支持旧的EntryPoints.get()方法,7.x版本已改用EntryPoints.select()。
3. 安装匹配版本的MLFlow
选择与上述依赖兼容的MLFlow版本,推荐验证过的2.8.1:
pip install mlflow==2.8.1
4. 验证安装有效性
运行以下命令确认MLFlow正常工作:
mlflow --version
若输出MLFlow版本号,说明安装成功。
额外注意事项
- 暂时避免将Python 3.12.x与MLFlow 2.9+版本搭配使用,后者尚未完全适配Python 3.12的依赖变更。
- 后续升级时,优先等待MLFlow官方发布适配Python 3.12的正式版本,再进行全环境升级。
内容的提问来源于stack exchange,提问作者Manan
相关产品推荐
相关产品推荐

