加菲猫欢乐跑
65.99M · 2026-03-26
最近接触到了由 FoundationAgents 开发的智能 Agent 工具——OpenManus。OpenManus 要求 Python 3.12 版本,而我的系统还是原来的 3.10。既要保留原有的开发环境,又要满足新项目的需求,这就需要用到 Python 多版本管理工具:pyenv。
下面是我从零开始的完整部署过程,希望能帮助到有类似需求的朋友!
面对多个项目对 Python 版本的不同要求,最优雅的解决方案不是卸载旧版本安装新版本(这样容易破坏现有环境),而是使用 PyEnv 这样的版本管理工具。它的优势在于:
在安装新版本 Python 之前,系统需要准备好必要的编译工具。Ubuntu/Debian 系统执行:
sudo apt update
sudo apt install -y make build-essential libssl-dev zlib1g-dev
libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm
libncurses5-dev libncursesw5-dev xz-utils tk-dev libffi-dev
liblzma-dev python-openssl git
使用官方提供的安装脚本,一行搞定:
curl | bash
安装后需要配置 Shell 配置文件,让系统识别 pyenv 命令:
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
echo '[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(pyenv init -)"' >> ~/.bashrc
source ~/.bashrc
验证安装成功:
pyenv --version # 如果输出版本号,说明成功啦!
查看可用版本列表:
pyenv install --list | grep 3.12
安装最新版本(这里以 3.12.6 为例):
pyenv install 3.12.6
这个过程可能需要几分钟时间,耐心等待即可
安装好后,有三种切换方式供你选择:
pyenv global 3.12.6
# 之后所有终端都默认使用 3.12.6
python --version # 应该显示 Python 3.12.6
cd /path/to/your/project
pyenv local 3.12.6
# 只有在这个目录下才使用 3.12.6
# 其他目录保持之前的版本设置
这个方式特别适合在不同项目间无缝切换!
pyenv shell 3.12.6
# 仅在当前终端窗口生效,关窗口后失效
想恢复系统原生 Python?只需:
pyenv global system
# 或者切换到其他已安装的版本
# pyenv global 3.10.0
PyEnv 把所有版本统一安装在 ~/.pyenv/versions 目录下,这种非常规整的目录结构让管理和维护变得超级轻松。
环境准备好后,接下来就是部署 OpenManus 本身了!
进入项目目录后,先局部设置 Python 版本:
pyenv local 3.12.6
uv venv --python 3.12.6
source .venv/bin/activate
uv pip install -r requirements.txt
OpenManus 需要配置 LLM API 才能使用。复制配置模板:
cp config/config.example.toml config/config.toml
编辑 config.toml 文件,修改以下关键内容:
# 全局 LLM 配置
[llm]
model = "gpt-4o"
base_url = "https://api.openai.com/v1"
api_key = "sk-你的OpenAI密钥"
max_tokens = 8192
temperature = 0.7
# 可选:视觉能力的 LLM 配置
[llm.vision]
model = "gpt-4o"
base_url = "https://api.openai.com/v1"
api_key = "sk-你的OpenAI密钥"
重要提示:由于公司内网存在网络代理,需要在 main.py 中去掉代理配置:
if __name__ == "__main__":
os.environ["http_proxy"] = ""
os.environ["https_proxy"] = ""
os.environ["HTTP_PROXY"] = ""
os.environ["HTTPS_PROXY"] = ""
os.environ["no_proxy"] = "*"
os.environ["NO_PROXY"] = "*"
asyncio.run(main())
然后启动服务:
python main.py
出现 "Enter your prompt:" 说明启动成功了!
让我们来测试一下 OpenManus 的能力吧!看我让它解释什么是 Python 装饰器:
Enter your prompt: 帮介绍一下python装饰器
OpenManus 不仅给出了专业的理论解释,还通过实际的 Python 代码执行演示了装饰器的按种用法:
functools.wraps整个过程 OpenManus 通过自行书写代码、执行验证、修正错误、逐层完善教学示例,展示了强大的代码理解和教学能力,真心震撼!
搞定!经历这次部署,我有几点经验分享给大家:
uv venv + pip 都可以,保持项目间的干净隔离部署只是第一步,接下来打算:
OpenManus 代表了新一代 AI Agent 的可能性方向,非常值得花时间深入研究和实践!