开放代码社区 › Pyminer - 数据统计分析决策平台
Pyminer - 数据统计分析决策平台
数据与可视化TypeScriptPyminer - 数据统计分析决策平台 Pyminer 是一个基于 Electron + React 开发的轻量级数据统计分析和建模工具。应用主界面参考 Anaconda Navigator,以卡片形式提供快速访问不同功能模块。 JupyterLab 集成 :一键启动 JupyterLab 服务,支持交互式数据分析 Jupyter Notebook 支持 :直接打开和编辑 Jupyter Notebook 文件 可视化流程分析 :通过 WeStatFlow 模块实现数据分析工作流可视化 代码编辑器 :集成 Monaco Editor 的代码编辑功能(WeStatCode) 数据处理 :数据读
仓库地址
https://gitee.com/py2cn/pyminer.gitREADME
# Pyminer - 数据统计分析决策平台 ## 项目概述 **Pyminer** 是一个基于 Electron + React 开发的轻量级数据统计分析和建模工具。应用主界面参考 Anaconda Navigator,以卡片形式提供快速访问不同功能模块。 ### 核心功能 - **JupyterLab 集成**:一键启动 JupyterLab 服务,支持交互式数据分析 - **Jupyter Notebook 支持**:直接打开和编辑 Jupyter Notebook 文件 - **可视化流程分析**:通过 WeStatFlow 模块实现数据分析工作流可视化 - **代码编辑器**:集成 Monaco Editor 的代码编辑功能(WeStatCode) - **数据处理**:数据读取、清洗、建模、预测等完整数据科学工作流 - **环境管理**:支持 Python 包管理(pip/conda)和 Kernel 管理 - **终端支持**:集成 xterm.js 提供终端环境 ### 设计理念 参考以下专业数据分析工具的设计: - SAS Enterprise Miner、SAS EG - FICO Model Build、RapidMiner - SPSS、Orange、MATLAB --- ## 技术架构 ### 技术栈 | 组件 | 版本 | |------|------| | Node.js | v22.21.1 | | Electron | Latest | | React | 19.2.0 | | TypeScript | 5.9.3 | | Ant Design | 6.0.0 | | Vite | Latest | | Python | 3.13.9 | | Monaco Editor | Latest | | flexlayout-react | Latest | | xterm.js | Latest | ### 架构组成 ``` ┌────────────────────────────────────────────────────┐ │ Electron 主进程 & Preload │ ├────────────────────────────────────────────────────┤ │ React 前端 (Vite 构建) │ │ ├─ 标题栏 & 菜单栏 │ │ ├─ 活动栏 & 工具栏 │ │ ├─ 主工作区 (Dockview + flexlayout) │ │ │ ├─ 左侧:文件管理器 │ │ │ ├─ 中间:主工作面板 + 底部面板 │ │ │ └─ 右侧:变量查看器、历史记录、属性 │ │ ├─ 设置页面 │ │ └─ 状态栏 │ ├────────────────────────────────────────────────────┤ │ 后端服务 │ │ ├─ JupyterLab 服务 (Python 环境) │ │ ├─ IPC 通信层 │ │ └─ 文件系统、路径、配置管理 │ ├────────────────────────────────────────────────────┤ │ Python 环境 (extensions/python) │ │ ├─ 解释器 │ │ ├─ Conda/Pip 包管理 │ │ └─ 数据科学库 │ └────────────────────────────────────────────────────┘ ``` --- ## 下载与安装 ### 前置要求 - **Node.js**: v22.21.1 或更高版本 - **Python**: 3.13.9(推荐) - **npm**: 10.9.4 或更高版本 ### 项目依赖安装 #### 1. Node.js 依赖 ```bash npm install ``` #### 2. Python 环境配置 下载 Python 解释器,放在 `extensions/python` 目录下(如果当前没有则需要手动创建此目录)。 推荐 Python 安装方式: **方案 A:使用 uv 管理 Python** ```bash # 下载并安装 uv uv python install 3.13.9 # uv 会自动将 Python 安装到 extensions/python ``` **方案 B:手动配置** 1. 下载 Python 3.13.9 2. 将 Python 程序放在 `extensions/python` 目录 3. 确保 `extensions/python/python.exe` 存在 #### 3. 安装 Python 包 Python 子环境中需要安装数据科学库: ```bash cd extensions/python # 使用 pip(推荐) pip install -i https://mirrors.aliyun.com/pypi/simple/ \ numpy pandas scipy scikit-learn matplotlib seaborn plotly statsmodels \ jupyterlab notebook beautifulsoup4 xgboost lightgbm catboost \ pymysql sqlalchemy fastapi jupyterlab-language-pack-zh-CN # 或使用 conda conda install -c conda-forge \ numpy pandas scipy scikit-learn matplotlib seaborn plotly statsmodels \ jupyterlab notebook beautifulsoup4 xgboost lightgbm catboost \ pymysql sqlalchemy fastapi ``` **主要 Python 依赖包:** | 包名 | 描述 | |------|------| | numpy | 数值计算 | | pandas | 数据处理 | | scipy | 科学计算 | | scikit-learn | 机器学习 | | matplotlib, seaborn, plotly | 数据可视化 | | statsmodels | 统计建模 | | jupyterlab, notebook | 交互式计算环境 | | beautifulsoup4 | 网页解析 | | xgboost, lightgbm, catboost | 梯度提升算法 | | pymysql, sqlalchemy | 数据库连接 | | fastapi | 宗旨 API 开发 | | jupyterlab-language-pack-zh-CN | 中文语言包 | #### 4. 其他子工具 Python 子环境中已预置: - **Conda**:`extensions/python/condabin/conda.bat` - **Pip**:`extensions/python/Scripts/pip.exe` Node.js 环境中需要: - **uv**:需要不仅安装 Python,也会用于创建新项目 --- ## 开发环境配置 ### 项目结构 ``` pyminer/ ├─ src/ # 前端源代码 │ ├─ main/ # Electron 主进程 │ │ ├─ index.js # 主进程入口 │ │ ├─ ipc/ # IPC 事件处理 │ │ ├─ menu/ # 菜单定义 │ │ ├─ windows/ # 窗口管理 │ │ └─ utils/ # 工具函数 │ ├─ components/ # React 组件 │ │ ├─ RibbonBar/ # 菜单栏 │ │ ├─ ActivityBar/ # 活动栏 │ │ ├─ FileExplorer/ # 文件管理器 │ │ ├─ CodeEditor/ # 代码编辑器 │ │ ├─ SqlEditor/ # SQL 编辑器 │ │ └─ ... │ ├─ pages/ # 页面组件 │ │ ├─ Home/ # 首页 │ │ ├─ Environment/ # 环境管理 │ │ ├─ Settings/ # 设置页面 │ │ └─ ... │ ├─ layouts/ # 布局组件 │ │ ├─ GlobalLayout/ # 全局布局 │ │ ├─ StatusBar/ # 状态栏 │ │ └─ ... │ ├─ stores/ # 全局状态 │ ├─ hooks/ # 自定义 Hooks │ ├─ theme/ # 主题配置 │ ├─ locales/ # 国际化配置 │ ├─ assets/ # 静态资源 │ ├─ App.tsx # 根组件 │ └─ main.tsx # 应用入口 │ ├─ public/ # 公共资源 │ ├─ preload.js # Preload 脚本 │ ├─ logos/ # 应用 LOGO │ └─ ... │ ├─ extensions/ # 程序扩展 │ ├─ python/ # Python 环境 │ │ ├─ python.exe │ │ ├─ Scripts/ │ │ ├─ condabin/ │ │ └─ Lib/ │ ├─ notebooks/ # Jupyter 上作目录 │ ├─ uv/ # uv 工具 │ └─ ... │ ├─ vite.config.ts # Vite 配置 ├─ tsconfig.json # TypeScript 配置 ├─ package.json # 项目配置 └─ README.md # 本文档 ``` ### 开发上手 #### 1. 安装依赖 ```bash npm install ``` #### 2. 启动开发服务器 ```bash # 终端 1:启动 Vite 开发服务器(支持热更新) npm run dev # 终端 2:启动 Electron 开发应用 npm run electron-dev ``` 应用启动后自动打开并支持热改写。在 Electron 开发者工具(F12)中可查看日志和配置信息。 --- ## 运行与打包 ### 运行应用 #### 开发模式 ```bash # 终端 启动 Electron 开发应用 npm run electron-dev ``` 应用启动后自动打开并支持热改写。在 Electron 开发者工具(F12)中可查看日志和配置信息。 #### 生产模式 ```bash # 编译 TypeScript 并打包应用 npm run electron-pack ``` 输出路径:`release/` 目录,Windows 环境下生成 NSIS 安装包。 ### 打包配置注意事项 - **资源加载**:生产环境需正确配置 `publicPath` 和 `file://` 协议处理 - **extensions 目录**:确保 Python 环境和扩展工具随安装包一起发布 - **IPC 通信**:生产环境下 IPC 消息传递需确保 Preload 脚本正常加载 --- ## 默认配置项 ### 应用默认设置 | 配置项 | 默认值 | 说明 | |--------|--------|------| | Python 路径 | `extensions/python/python.exe` | 项目相对路径,启动时转换为绝对路径 | | Conda 路径 | `extensions/python/condabin/conda.bat` | 项目相对路径 | | Pip 路径 | `extensions/pyt