🚀 部署 Browser-Use 实战 (MacBook Pro M4): 从 patchright
迷踪到 API 配额终局 🤖
大家好!今天想和大家分享一次在我的 MacBook Pro (M4 芯片) 上部署 browser-use
这个有趣项目的实战经历。browser-use
号称是连接 AI 代理和浏览器的最简单方式,听起来就很酷!🥳 但就像所有激动人心的技术探索一样,特别是在新的 Apple Silicon 架构上,过程并非一帆风顺。下面就让我带大家重走一遍部署之路,看看我们遇到了哪些“拦路虎”,又是如何一一克服的!
📜 部署概要 (TL;DR 表格总结)
步骤 | 命令/操作 | 结果/遇到的问题 (在 M4 Mac 上) | 解决方案/后续操作 |
---|---|---|---|
1. 环境准备 | python3 --version , pip3 --version | ✅ Python 3.12.9, pip 25.0,M4 环境满足要求 | - |
2. 创建虚拟环境 | python3 -m venv .venv , source ... | ✅ 成功创建并激活 | - |
3. 安装依赖 | pip3 install "browser-use[memory]" | ✅ 安装成功 (依赖包均有 arm64 版本),但有 memory extra 警告 | 注意 memory extra 可能未生效 |
4. 安装浏览器 | patchright install chromium | ❌ 问题1: command not found: patchright (与 M4 无直接关联?) | 尝试多种方法失败 |
5. 浏览器变通方案 | playwright install chromium | ✅ 解决: 成功下载并安装 ARM64 版 Chromium | 问题绕过,浏览器驱动已就绪 |
6. 安装 UI 库 | pip3 install gradio | ✅ 安装 Gradio 成功 | - |
7. 获取示例代码 | git clone , cd browser-use | ✅ 成功克隆仓库 | - |
8. 配置 API Key | cp .../.env . , touch .env , nano | 复制失败,手动创建并编辑 .env 文件 | ✅ 在 browser-use 目录下创建了 .env 文件 |
9. 运行 UI | python3 gradio_demo.py | ❌ 问题2: ImportError: ... SOCKS proxy ... socksio ... | 系统检测到 SOCKS 代理,缺少依赖 (与平台无关) |
10. 代理问题解决 | pip install "httpx[socks]" | ✅ 解决: 成功安装 socksio (注意 zsh 命令需加引号) | - |
11. 再次运行 UI | python3 gradio_demo.py | UI 启动,但在连接 LLM 时报错 | ❌ 问题3: Error code: 429 ... insufficient_quota |
12. 最终问题 | - | 🚫 OpenAI API 密钥配额不足 (与平台无关) | 待办: 需登录 OpenAI 检查账户状态、充值或绑定支付方式 |
🗺️ 整体部署流程 (Mermaid Flowchart)
🛠️ 详细步骤与排错实录 (MacBook Pro M4 视角)
1. 环境就绪 💻 (M4 Mac)
在 M4 Mac 上,检查了 Python (3.12.9) 和 pip (25.0) 版本,确认都是适配 Apple Silicon 的。Xcode 命令行工具也已就位。
python3 --version
# Python 3.12.9
pip3 --version
# pip 25.0 ...
xcode-select --install
# ... already installed ...
2. 虚拟环境 隔离🛡️
创建并激活虚拟环境,步骤与 Intel Mac 或 Linux 类似。
mkdir my-browser-agent
cd my-browser-agent
python3 -m venv .venv
source .venv/bin/activate
# (.venv) ... %
3. 安装核心库与“内存”疑云 🤔
尝试安装 browser-use
并附带 memory
选项。在 M4 Mac 上,pip 会自动下载 arm64 架构的兼容包(如 faiss-cpu
, torch
, playwright
等),安装过程顺利。
pip3 install "browser-use[memory]"
同样收到 memory
extra 警告,且注意到 playwright
arm64 版本已作为依赖安装。
4. patchright
去哪儿了?🕵️♂️
运行 patchright install chromium
。
patchright install chromium
# zsh: command not found: patchright ❌
遭遇第一个障碍! patchright
命令找不到。这个问题似乎与 M4 芯片无直接关系,更像是包的脚本安装或 PATH 配置问题。
排查尝试(均失败):
- 检查文件 (
ls .venv/bin/patchright
) 🚫 - 刷新 zsh 命令缓存 (
rehash
) 🤷♀️ - 重新激活虚拟环境 🤷♂️
- 卸载并重装
browser-use
🤯 - 直接运行模块 (
python -m browser_use.patchright ...
) 🚫
5. 峰回路转:playwright
手动安装 ✅ (M4 适用)
既然 playwright
库已安装(arm64 版本),直接用其命令安装浏览器驱动。
playwright install chromium
# Downloading Chromium ... (chromium-mac-arm64.zip) ✅
# ... downloaded to ... ✅
成功! Playwright 正确下载并安装了适用于 Apple Silicon (arm64) 的 Chromium 版本。
6. Gradio UI 整装待发 🎨
安装 gradio
库。
pip3 install gradio
# ... Successfully installed gradio ... ✅
7. 获取 UI 示例代码 📥
克隆 browser-use
仓库。
cd ..
git clone https://github.com/browser-use/browser-use.git
cd browser-use
8. 配置 API 密钥 🔑
在 browser-use
目录下创建 .env
文件并添加 OpenAI API Key。
touch .env
nano .env # 添加 OPENAI_API_KEY=你的密钥
9. 启动 UI 与 SOCKS 代理 “惊喜” 🚇
进入 UI 示例目录,运行脚本!
cd examples/ui/
python3 gradio_demo.py
遭遇第二个障碍! SOCKS 代理错误,这通常与系统网络环境设置有关,与 M4 芯片本身无关。
ImportError: Using SOCKS proxy, but the 'socksio' package is not installed... ❌
解决代理问题: 使用引号包裹命令安装 httpx
的 SOCKS 依赖。
pip install "httpx[socks]"
# Successfully installed socksio-1.0.0 ✅
10. 终局之战:API 配额不足 💰
再次运行 UI 脚本:
python3 gradio_demo.py
Gradio UI 成功启动!但在连接 OpenAI 时,遇到 最终障碍:insufficient_quota
错误。这同样与 M4 芯片无关,是 OpenAI 账户的问题。
ERROR [agent]
❌ LLM ChatOpenAI connection test failed... Error code: 429 - insufficient_quota...
后续行动: 需要登录 OpenAI Platform 解决账户配额问题。
⏱️ 交互时序图 (Mermaid Sequence Diagram)
🧠 总结与思考 (M4 Mac 视角)
这次在 MacBook Pro M4 上部署 browser-use
的经历,除了遇到预期中的 Python 环境和依赖问题外,也带来一些思考:
- Apple Silicon 兼容性: 大部分核心依赖(Python, pip, Playwright, PyTorch (暗含在
sentence-transformers
中), Gradio 等)对 M 系列芯片支持良好,pip 能自动处理 arm64 架构。 patchright
问题: 虽然最终绕过了,但这个工具在 M4 + zsh + Python 3.12 环境下未能按预期工作,原因待查(可能是打包配置或环境路径问题),但这似乎不是 M4 特有的。- 通用问题仍存在: 像 SOCKS 代理检测和外部 API 配额限制这类问题,是独立于硬件平台的,任何环境下都可能遇到。
- Shell 差异: zsh 对带括号参数的处理方式(需要引号)是 macOS 用户需要注意的小细节。
希望这次基于 M4 Mac 的踩坑记录能对使用 Apple Silicon 设备的朋友们更有参考价值!别忘了,搞定代码和环境后,还得确保你的 API Key 有足够的“弹药”!😉