目录
【保姆级】MetaGPT安装避坑指南:Windows+Conda环境下解决依赖冲突、版本过低及配置失效问题
[一、 遇到的核心问题](#一、 遇到的核心问题)
[二、 终极解决方案:使用 uv 进行安装](#二、 终极解决方案:使用 uv 进行安装)
[1. 安装 uv](#1. 安装 uv)
[2. 强制安装最新版(关键步骤)](#2. 强制安装最新版(关键步骤))
[3. 验证安装](#3. 验证安装)
[三、 解决配置读取不到的问题](#三、 解决配置读取不到的问题)
[四、 实战代码:用 Qwen 写一个贪吃蛇](#四、 实战代码:用 Qwen 写一个贪吃蛇)
[五、 运行与结果](#五、 运行与结果)
[六、 总结](#六、 总结)
【保姆级】MetaGPT安装避坑指南:Windows+Conda环境下解决依赖冲突、版本过低及配置失效问题
前言
最近在研究多智能体框架 MetaGPT ,在 Windows 的 Conda 环境下安装时踩了无数坑。从 pip 依赖死循环,到安装成古早的 0.1 版本,再到配置文件死活读不到,折腾了一整天。
本文总结了一套**"必过"**的安装方案,特别是针对 Windows + Conda 用户,教你如何用 uv 秒解依赖冲突,并完美运行基于 阿里云 Qwen(通义千问) 的 CLI 贪吃蛇游戏生成示例。
一、 遇到的核心问题
-
依赖地狱 (Dependency Hell) :直接用
pip install metagpt时,报错error: resolution-too-deep。原因是metagpt依赖的fire版本较老,与agentops引入的新版opentelemetry发生严重冲突。 -
版本幽灵 :好不容易装上了,运行报错
ModuleNotFoundError: No module named 'metagpt.team',一查发现装的是 0.1 版本(官方最新的已经是 0.8.x)。 -
配置失效 :创建了
config2.yaml,但程序死活读不到,一直报Set OPENAI_API_KEY first。 -
命令丢失 :安装后找不到
metagpt命令。
二、 终极解决方案:使用 uv 进行安装
普通的 pip 解析器无法处理 MetaGPT 复杂的依赖树,我们必须引入 uv(一个基于 Rust 的超快 Python 包管理器)。
1. 安装 uv
进入你的 Conda 环境,先安装 uv:
Bash
pip install uv
2. 强制安装最新版(关键步骤)
这里有两个要点:
-
必须指定版本
>=0.8.2,否则可能装成 0.1 版。 -
必须加上
--prerelease=allow,因为 MetaGPT v0.8.2 依赖了semantic-kernel的开发版,不加这个参数会报错。
执行以下命令:
Bash
uv pip install "metagpt>=0.8.2" --prerelease=allow
3. 验证安装
安装完成后,务必检查版本:
Bash
pip show metagpt
成功标准 :Version 显示为 0.8.2 或更高。如果显示 0.1,请使用 pip uninstall metagpt -y 卸载后重新运行上述 uv 命令。
三、 解决配置读取不到的问题
官方文档推荐在 config/config2.yaml 中写配置,但在 Windows 下经常因为文件编码 、隐藏后缀名(.txt)或路径解析问题导致读取失败。
最稳妥的方案:直接在 Python 启动脚本中注入环境变量。这样不需要依赖任何外部配置文件,代码拷到哪里都能跑。
四、 实战代码:用 Qwen 写一个贪吃蛇
我们以接入 阿里云 DashScope (Qwen3-Coder-Plus) 为例,因为它是兼容 OpenAI 协议的,且写代码能力很强。
新建一个 run.py 文件,填入以下代码:
Python
import os
import asyncio
# ==========================================
# 1. 核心配置:直接通过环境变量注入,绕过配置文件读取坑
# ==========================================
# 这里使用阿里云 DashScope 的兼容模式
os.environ["OPENAI_API_TYPE"] = "openai"
os.environ["OPENAI_BASE_URL"] = "https://coding.dashscope.aliyuncs.com/v1"
os.environ["OPENAI_API_MODEL"] = "qwen3-coder-plus"
# 【注意】请替换为你自己的 API Key
os.environ["OPENAI_API_KEY"] = "sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
# ==========================================
# 2. 导入 MetaGPT (必须在配置环境变量之后)
# ==========================================
from metagpt.team import Team
from metagpt.roles import (
Architect,
Engineer,
ProductManager,
ProjectManager,
)
async def main():
# 3. 组建全明星团队
company = Team()
company.hire(
[
ProductManager(), # 产品经理:分析需求
Architect(), # 架构师:设计架构
ProjectManager(), # 项目经理:分配任务
Engineer(), # 工程师:写代码
]
)
# 4. 模拟获得一笔投资
company.invest(investment=3.0)
# 5. 下达需求
idea = "Write a cli snake game"
# 6. 运行项目
print(f"🚀 开始运行项目: {idea}")
company.run_project(idea)
# 7. 等待团队多轮协作
await company.run(n_round=5)
if __name__ == "__main__":
# 运行异步主程序
asyncio.run(main())
五、 运行与结果
在命令行运行:
Bash
python run.py
你将看到彩色的日志滚动,智能体们开始分工合作:
-
ProductManager 输出 PRD 文档。
-
Architect 设计接口和数据结构。
-
Engineer 输出最终的 Python 代码。
产出物位置:
程序运行结束后,可以在当前目录下的 workspace 文件夹中找到生成的项目代码。
六、 总结
在 Windows 上玩 MetaGPT,切记以下三点:
-
抛弃原生 pip ,使用
uv来解决依赖冲突。 -
注意版本号 ,看到 0.1 版本立刻卸载重装,并加上
--prerelease=allow。 -
配置不求人 ,直接在代码里用
os.environ设置 Key,比折腾 yaml 文件稳得多。
希望这篇笔记能帮大家少走弯路!如果有问题欢迎在评论区交流。
