本地部署 OpenManus 保姆级教程(Windows 版)
一、环境搭建
我的电脑是Windows 10版本,其他的没尝试,如果大家系统和我的不一致,请自行判断,基本上没什么大的出入啊。
openManus的Git地址:https://github.com/mannaandpoem/OpenManus
根据官网的两种安装推荐方式如下:

这里我使用第一只方式,虽然推荐了使用UV,但是我使用过,就不用第二种方式。
二、Anaconda下载
我电脑上没有安装:Anaconda,那就一并安装一下吧
这里推荐两种下载方式一是官网下载,二是镜像下载;官网下载太慢可选用镜像下载。
官网下载:https://www.anaconda.com/products/distribution

镜像下载:https://mirrors.bfsu.edu.cn/anaconda/archive/

我这里选择了Anaconda3-5.3.1-Windows-x86_64.exe这个镜像版本,大家随意啊。
具体Anaconda如何安装的,大家自行搜索啊,这里就不赘述了。
三、核心组件安装
为了方便不知道如何安装的,我也偷懒一下,也是直接使用deepseek帮我搞一下:

https://github.com/mannaandpoem/OpenManus
我在学习如何使用open-manus,但是下面的安装步骤,是在linux中运行的,我的电脑是window10 ,请把下面的操作步骤换成windows10中的步骤,让我一目了然
使用 conda
创建一个新的 conda 环境:
conda create -n open_manus python=3.12
conda activate open_manus
克隆存储库:
git clone https://github.com/mannaandpoem/OpenManus.git
cd OpenManus
安装依赖项:
pip install -r requirements.txt
为了方便大家快速搭建,直接贴了我的提示词,运行结果如下:
以下是为 Windows 10 系统适配的详细步骤(使用 Anaconda):1. 安装前置工具
- 确保已安装 [Git for Windows](https://git-scm.com/download/win)
- 确保已安装 [Miniconda 或 Anaconda](https://docs.conda.io/en/latest/miniconda.html)2. 打开 Anaconda Prompt(推荐)或 PowerShell3. 创建 conda 环境
```powershell
conda create -n open_manus python=3.12 -y
conda activate open_manus
- 克隆仓库
git clone https://github.com/mannaandpoem/OpenManus.git
cd OpenManus
- 安装依赖
pip install -r requirements.txt
常见问题解决方案:
-
如果遇到环境激活问题:
- 在 PowerShell 中首次使用需执行:
conda init powershell - 关闭后重新打开终端
- 在 PowerShell 中首次使用需执行:
-
如果缺少 C++ 编译工具(安装某些包时报错):
安装 Microsoft C++ Build Tools -
如果 Python 3.12 不可用:
conda create -n open_manus python=3.11 -
替代克隆方式(如果 git 不可用):
直接下载 ZIP:https://github.com/mannaandpoem/OpenManus/archive/refs/heads/main.zip
解压后进入目录执行后续步骤
至此已经本地已经安装完毕了。
四、服务配置与连接

找到Config文件夹,进去,重新复制一份config.toml文件

这里替换config文件配置:
# Global LLM configuration
[llm]
model = "Qwen/QwQ-32B"
base_url = "https://api.siliconflow.cn/v1"
api_key = "这里写你自己的Key"
max_tokens = 16384
temperature = 0.6# Optional configuration for specific LLM models
[llm.vision]
model = "Qwen/Qwen2-VL-72B-Instruct"
base_url = "https://api.siliconflow.cn/v1"
api_key = "这里写你自己的Key"
这里我使用的硅基流动Key,他们家刚好有活动,注册就送你2000万Tokens,我们这边测试用,完全够了,薅羊毛地址是:https://cloud.siliconflow.cn/i/pCa1dBVX
大家有其他的Key,也是可以用,随自己的意愿。
配置完毕之后,接下来就是运行main.py

至此,流程基本已经开始跑起来了。
五、前端页面
由于是控制台我不喜欢,然后我又用deepseek帮我制作了html页面,便于我页面处理:

这里就写了2个文件


主要两个文件:app.py和templates/index.html
两个文件的详细代码如下:
app.py:
from flask import Flask, Response, request, jsonify, render_template
from flask_cors import CORS
import subprocess
import sys
import os
import signal
import threadingapp = Flask(__name__)
CORS(app, resources={r"/*": {"origins": "*"}})# 进程管理
process_lock = threading.Lock()
current_process = None@app.route('/')
def index():return render_template('index.html')@app.route('/stream', methods=['GET', 'POST', 'OPTIONS'])
def stream_execute():global current_process# 处理预检请求if request.method == 'OPTIONS':return _build_preflight_response()# 获取输入内容idea = request.json.get('idea', '') if request.method == 'POST' else request.args.get('idea', '')if not idea:return Response("data: 错误:未提供输入\n\n", mimetype='text/event-stream')# 终止已有进程with process_lock:if current_process and current_process.poll() is None:current_process.terminate()# 启动新进程current_process = subprocess.Popen([sys.executable, '-u', 'main.py'],stdin=subprocess.PIPE,stdout=subprocess.PIPE,stderr=subprocess.STDOUT,text=True,bufsize=1,universal_newlines=True,creationflags=subprocess.CREATE_NEW_PROCESS_GROUP if os.name == 'nt' else 0)# 发送输入current_process.stdin.write(idea + '\n')current_process.stdin.flush()# 流式响应def generate():while True:line = current_process.stdout.readline()if not line:if current_process.poll() is not None:breakcontinueyield f"data: {line}\n\n"yield "event: end\ndata: \n\n"return Response(generate(),mimetype='text/event-stream',headers={'Access-Control-Allow-Origin': '*','Cache-Control': 'no-cache','X-Accel-Buffering': 'no'})def _build_preflight_response():response = jsonify({'status': 'ok'})response.headers.add("Access-Control-Allow-Origin", "*")response.headers.add("Access-Control-Allow-Headers", "*")response.headers.add("Access-Control-Allow-Methods", "*")return response@app.route('/stop', methods=['POST'])
def stop_execution():global current_processwith process_lock:if current_process and current_process.poll() is None:current_process.terminate()return jsonify({'status': 'stopped'})return jsonify({'status': 'not running'}), 404@app.after_request
def add_cors_headers(response):response.headers['Access-Control-Allow-Origin'] = '*'response.headers['Access-Control-Allow-Headers'] = 'Content-Type'response.headers['Access-Control-Allow-Methods'] = 'GET, POST, PUT, DELETE, OPTIONS'return responseif __name__ == '__main__':app.run(port=5000, threaded=True)
index.html的页面代码如下:
<!DOCTYPE html>
<html lang="zh-CN">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>OpenManus 实时控制台</title><link href="https://cdn.bootcdn.net/ajax/libs/twitter-bootstrap/5.3.0/css/bootstrap.min.css" rel="stylesheet"><style>#output {background: #1e1e1e;color: #d4d4d4;padding: 20px;border-radius: 5px;font-family: 'Consolas', monospace;height: 60vh;overflow-y: auto;white-space: pre-wrap;}.log-item {margin: 5px 0;padding: 3px 10px;border-left: 3px solid #3c3c3c;}.loading {position: fixed;top: 20px;right: 20px;display: none;}</style>
</head>
<body><div class="container py-5"><h1 class="text-primary mb-4">🚀 OpenManus 实时控制台</h1><div class="mb-4"><textarea id="ideaInput" class="form-control bg-dark text-light" rows="4" placeholder="输入您的创意(示例:分析特斯拉最近三个月的股价趋势并生成可视化报告)"></textarea></div><div class="d-flex gap-2 mb-4"><button class="btn btn-success" onclick="startExecution()">开始执行</button><button class="btn btn-danger" onclick="stopExecution()">终止任务</button></div><div class="card bg-dark"><div class="card-header text-light">实时输出</div><div id="output" class="card-body"></div></div><div id="loading" class="loading"><div class="spinner-border text-primary" role="status"><span class="visually-hidden">加载中...</span></div></div></div><script>let eventSource = null;function showLoading() {document.getElementById('loading').style.display = 'block';}function hideLoading() {document.getElementById('loading').style.display = 'none';}function clearOutput() {document.getElementById('output').innerHTML = '';}function showError(message) {const output = document.getElementById('output');output.innerHTML += `<div class="text-danger">${message}</div>`;}function ansiToHtml(text) {return text.replace(/\x1B\[32m/g, '<span class="text-success">').replace(/\x1B\[31m/g, '<span class="text-danger">').replace(/\x1B\[0m/g, '</span>');}function startExecution() {const idea = document.getElementById('ideaInput').value.trim();if (!idea) return alert('请输入执行内容');clearOutput();showLoading();// 先发送POST请求fetch('http://localhost:5000/stream', {method: 'POST',headers: {'Content-Type': 'application/json',},body: JSON.stringify({ idea: idea })}).then(response => {if (!response.ok) {throw new Error(`HTTP错误 ${response.status}`);}// 建立SSE连接eventSource = new EventSource(`http://localhost:5000/stream?idea=${encodeURIComponent(idea)}`);eventSource.onmessage = (e) => {const formatted = ansiToHtml(e.data);document.getElementById('output').innerHTML += `<div class="log-item">${formatted}</div>`;// 自动滚动const output = document.getElementById('output');output.scrollTop = output.scrollHeight;};eventSource.onerror = (e) => {console.error('SSE Error:', e);hideLoading();eventSource.close();};eventSource.addEventListener('end', () => {hideLoading();eventSource.close();});}).catch(error => {hideLoading();showError(`请求失败: ${error.message}`);});}function stopExecution() {if (eventSource) {eventSource.close();hideLoading();}fetch('http://localhost:5000/stop', {method: 'POST'}).then(response => {if (response.ok) {alert('已终止执行');}});}// 清理资源window.addEventListener('beforeunload', () => {if (eventSource) eventSource.close();fetch('/stop', { method: 'POST' });});</script>
</body>
</html>
启动服务:

再打开一个powershell

启动服务,至此页面完成:浏览器直接访问:http://localhost:5000/

openmanus会按照步骤给你执行,自动处理,解放双手吧。

至此基本上就完成了。
我本地也是刚跑出来,大家遇到什么问题,欢迎可以互相套路。
相关文章:
本地部署 OpenManus 保姆级教程(Windows 版)
一、环境搭建 我的电脑是Windows 10版本,其他的没尝试,如果大家系统和我的不一致,请自行判断,基本上没什么大的出入啊。 openManus的Git地址:https://github.com/mannaandpoem/OpenManus 根据官网的两种安装推荐方式如…...
【Pandas】pandas Series compare
# Pandas2.2 Series ## Computations descriptive stats |方法|描述| |-|:-------| |Series.compare(other[, align_axis, ...])|用于比较两个 Series| ### pandas.Series.compare pandas.Series.compare 方法用于比较两个 Series,并返回一个包含差异的 DataFram…...
基于DeepSeek的智慧医药系统(源码+部署教程)
运行环境 智慧医药系统运行环境如下: 前端: HTMLCSS后端:Java AIGCDeepseekIDE工具:IDEA技术栈:Springboot HTMLCSS MySQL 主要角色 智慧医药系统主要分为两个角色。 游客 尚未进行注册和登录。具备登录注册、…...
如何为服务设置合理的线程数
1. 首先,要确定最大线程数的限制因素。通常,线程数量受限于内存、CPU和操作系统限制。比如,每个线程都需要一定的栈内存,默认情况下Java线程的栈大小是1MB(64位系统可能更大),所以如果内存不足&…...
Unity--Cubism Live2D模型使用
了解LIVE2D在unity的使用--前提记录 了解各个组件的作用 Live2D Manuals & Tutorials 这些文件都是重要的控制动画参数的 Cubism Editor是编辑Live2D的工具,而导出的数据的类型,需要满足以上的条件 SDK中包含的Cubism的Importer会自动生成一个Pref…...
Vue.js 3 的设计思路:从声明式UI到高效渲染机制
目录 一、声明式UI与虚拟DOM的灵活性 二、渲染器:虚拟DOM到真实DOM的桥梁 三、组件的本质与实现 四、编译与运行时的协同优化 五、性能与可维护性的权衡 总结 Vue.js 3 作为新一代前端框架,其设计理念在声明式UI描述、虚拟DOM优化、组件化架构…...
部署前后端项目
部署项目 liunx 软件安装 软件安装方式 在Linux系统中,安装软件的方式主要有四种,这四种安装方式的特点如下: 建议nginx、MySQL、Redis等等使用docker安装,会很便捷,这里只演示JDK、ngxin手动的安装 安装JDK 上述我…...
Vue Diff算法原理深度解析:如何高效更新虚拟DOM?
文章目录 1. 为什么需要Diff算法?2. Diff算法核心原则3. 核心流程图解4. 核心代码实现(简化版)5. Key的重要性示例6. 算法优化策略7. 时间复杂度优化8. 与其他框架的对比9. 总结 1. 为什么需要Diff算法? 在Vue的响应式系统中&…...
Dify平台部署记录
安装dify项目 官网地址:http://difyai.com/ github地址:https://github.com/langgenius/dify 下载项目: git clone https://github.com/langgenius/dify.git下载过慢,直接访问网页下载zip压缩包: 解压,…...
ArcGIS Pro中字段的新建方法与应用
一、引言 在地理信息系统(GIS)的数据管理和分析过程中,字段操作起着至关重要的作用。 无论是进行地图制作、空间分析还是数据统计,字段都是承载属性信息的基本单元。 ArcGIS Pro作为一款功能强大的GIS软件,为用户提…...
Git 的基本概念和使用方式。
Git 是一种分布式版本控制系统,用于跟踪文件和目录的变化。Git 的基本概念和使用方式如下: 仓库(Repository):Git 仓库是用来存储项目文件和历史记录的地方。一个 Git 仓库包含项目的文件、版本记录和配置信息。 提交…...
贪心算法--
1.柠檬水找零 link:860. 柠檬水找零 - 力扣(LeetCode) code class Solution { public:bool lemonadeChange(vector<int>& bills) {// 贪心算法, 优先花出大面额bill, 尽可能保护小面额billint five 0, ten 0;// 不…...
mysql下载与安装、关系数据库和表的创建
一、mysql下载: MySQL获取: 官网:www.mysql.com 也可以从Oracle官方进入:https://www.oracle.com/ 下载地址:https://downloads.mysql.com/archives/community/ 选择对应的版本和对应的操作系统&a…...
万字技术指南STM32F103C8T6 + ESP8266-01 连接 OneNet 平台 MQTT/HTTP
此博客为一份详细的指南,涵盖 STM32F103C8T6 通过 ESP8266-01 连接 OneNet 平台,并使用 MQTT/HTTP 进行数据通信的完整流程。这份文档包括: OneNet 平台的介绍与功能概览在 OneNet 上创建和配置设备的方法STM32CubeIDE 的开发环境搭建ESP826…...
MWC 2025 | 紫光展锐联合移远通信推出全面支持R16特性的5G模组RG620UA-EU
2025年世界移动通信大会(MWC 2025)期间,紫光展锐联合移远通信,正式发布了全面支持5G R16特性的模组RG620UA-EU,以强大的灵活性和便捷性赋能产业。 展锐芯加持,关键性能优异 RG620UA-EU模组基于紫光展锐V62…...
PyCharm 接入 DeepSeek、OpenAI、Gemini、Mistral等大模型完整版教程(通用)!
PyCharm 接入 DeepSeek、OpenAI、Gemini、Mistral等大模型完整版教程(通用)! 当我们成功接入大模型时,可以选中任意代码区域进行解答,共分为三个区域,分别是选中区域、提问区域以及回答区域,我…...
小智智能体语言大模型硬件软件开发
硬件可以参考ESP32-AI语音助手 - 立创开源硬件平台 单片机使用esp32s3,可以直接替换,但是引脚IO有变化,而且esp32s3 io35 36 37不能用,所以得飞一条线,原先接在io35的飞到io4上。如果不飞线的话系统一直重启 软件使用…...
网络tcp协议设置,网络tcp协议设置不了
网络TCP协议的设置通常涉及到多个方面,包括IP地址、子网掩码、默认网关、DNS服务器等参数的配置,以及TCP/IP协议栈本身的配置。如果遇到网络TCP协议设置不了的问题,可能是由多种原因导致的。以下是一些可能的原因及解决方法: 一、…...
配置Hadoop集群
Hadoop的运行模式 本地运行:在一台单机上运行,没有分布式文件系统,直接读写本地操作系统的文件系统。特点:不对配置文件进行修改,Hadoop 不会启动 伪分布式:也是在一台单机上运行,但用不同的 …...
模型微调-基于LLaMA-Factory进行微调的一个简单案例
模型微调-基于LLaMA-Factory进行微调的一个简单案例 1. 租用云计算资源2. 拉取 LLaMa-Factory3. 安装依赖环境4. 启动 LLaMa-Factory 界面5. 从 Huggingface 下载模型6. 模型验证7. 模型微调 1. 租用云计算资源 以下示例基于 AutoDL 云计算资源。 在云计算平台选择可用的云计…...
使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式
一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明:假设每台服务器已…...
国防科技大学计算机基础课程笔记02信息编码
1.机内码和国标码 国标码就是我们非常熟悉的这个GB2312,但是因为都是16进制,因此这个了16进制的数据既可以翻译成为这个机器码,也可以翻译成为这个国标码,所以这个时候很容易会出现这个歧义的情况; 因此,我们的这个国…...
IGP(Interior Gateway Protocol,内部网关协议)
IGP(Interior Gateway Protocol,内部网关协议) 是一种用于在一个自治系统(AS)内部传递路由信息的路由协议,主要用于在一个组织或机构的内部网络中决定数据包的最佳路径。与用于自治系统之间通信的 EGP&…...
解决Ubuntu22.04 VMware失败的问题 ubuntu入门之二十八
现象1 打开VMware失败 Ubuntu升级之后打开VMware上报需要安装vmmon和vmnet,点击确认后如下提示 最终上报fail 解决方法 内核升级导致,需要在新内核下重新下载编译安装 查看版本 $ vmware -v VMware Workstation 17.5.1 build-23298084$ lsb_release…...
JDK 17 新特性
#JDK 17 新特性 /**************** 文本块 *****************/ python/scala中早就支持,不稀奇 String json “”" { “name”: “Java”, “version”: 17 } “”"; /**************** Switch 语句 -> 表达式 *****************/ 挺好的ÿ…...
c#开发AI模型对话
AI模型 前面已经介绍了一般AI模型本地部署,直接调用现成的模型数据。这里主要讲述讲接口集成到我们自己的程序中使用方式。 微软提供了ML.NET来开发和使用AI模型,但是目前国内可能使用不多,至少实践例子很少看见。开发训练模型就不介绍了&am…...
06 Deep learning神经网络编程基础 激活函数 --吴恩达
深度学习激活函数详解 一、核心作用 引入非线性:使神经网络可学习复杂模式控制输出范围:如Sigmoid将输出限制在(0,1)梯度传递:影响反向传播的稳定性二、常见类型及数学表达 Sigmoid σ ( x ) = 1 1 +...
管理学院权限管理系统开发总结
文章目录 🎓 管理学院权限管理系统开发总结 - 现代化Web应用实践之路📝 项目概述🏗️ 技术架构设计后端技术栈前端技术栈 💡 核心功能特性1. 用户管理模块2. 权限管理系统3. 统计报表功能4. 用户体验优化 🗄️ 数据库设…...
C++.OpenGL (20/64)混合(Blending)
混合(Blending) 透明效果核心原理 #mermaid-svg-SWG0UzVfJms7Sm3e {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-SWG0UzVfJms7Sm3e .error-icon{fill:#552222;}#mermaid-svg-SWG0UzVfJms7Sm3e .error-text{fill…...
Python Einops库:深度学习中的张量操作革命
Einops(爱因斯坦操作库)就像给张量操作戴上了一副"语义眼镜"——让你用人类能理解的方式告诉计算机如何操作多维数组。这个基于爱因斯坦求和约定的库,用类似自然语言的表达式替代了晦涩的API调用,彻底改变了深度学习工程…...
