环境自动装配小工具 (env-auto-setup) 下载即用推荐不需要 Python 环境不需要克隆源码双击即可运行。请到Releases 页面下载对应操作系统的最新版本系统下载文件说明Windowsenv-auto-setup.exe双击运行无需安装macOS (Apple Silicon)env-auto-setup-macos-arm64.zip解压后双击env-auto-setup.appmacOS (通用)env-auto-setup-macos.zip解压后双击env-auto-setup.appLinux (x64)env-auto-setup-linux-x64chmod x后直接运行首次启动提示macOS由于未做代码签名首次打开时系统可能提示无法验证开发者。请到「系统设置 → 隐私与安全性」下方点击 **仍要打开**或用xattr -cr env-auto-setup.app移除隔离属性。WindowsDefender / SmartScreen 可能弹出未识别应用点击更多信息 → 仍要运行即可。Linux如果双击无响应请在终端执行chmod x env-auto-setup-linux-x64 ./env-auto-setup-linux-x64。 只想看看代码 / 自己二次开发往下翻到开发者指南。 开发背景每次入职新公司、拿到一台新电脑、或者给同事讲解怎么搭建后端 / 前端开发环境都要重复一系列繁琐的步骤找官网—— Oracle 现在要登录才能下 JDKAdoptium Temurin 是哪个包才对MySQL 官方的 zip 藏在哪个二级页面对系统 / 架构—— macOS 是 Intel 还是 Apple SiliconLinux 用 glibc 哪个版本解压 放到正确的位置—— 一堆C:\Program Files...还是~/tools/...的目录规划。配置环境变量—— Windows 上要点开高级系统设置 → 环境变量 → 用户变量 / 系统变量 → 新建macOS/Linux 要区分.zshrc、**.bash_profile、.bashrc、.profile** 里到底写在哪个才生效。验证—— 打开新终端java -version、mvn -v…… 一个不对就重来。一台电脑做完至少半小时多台电脑或者带新人上手时更是重复劳动。能不能把这些交给一个工具于是有了这个项目让「新机器 → 一套完整开发环境」这件事变成点几下鼠标就搞定。 项目描述env-auto-setup是一款开源的桌面小工具目标是把开发者最常用的语言运行时、构建工具、中间件的下载与配置全部自动化。它做了这几件事✅智能识别系统自动判断 Windows / macOS / Linux CPU 架构x64 / arm64挑选正确的官方分发包✅动态版本抓取启动时向各官方 API / 归档索引拉取最新可用版本列表Adoptium、Apache Maven / Tomcat、python.org、Node.js dist、GitHub Releases、Anaconda Repo不再依赖硬编码✅可搜索下拉框版本列表长直接键入21/3.12/LTS实时过滤✅自动检测已装环境如果系统已经有java/mvn/python会显示 ✓ 已配置 状态并禁用配置环境变量按钮避免重复写入✅一键下载 → 解压 → 配环境变量Windows 下走winregmacOS/Linux 下带 marker 幂等写入 shell 配置文件✅安装器模式Miniconda 这类.exe/.sh安装器工具会以静默参数自动执行安装✅现代化 UI无边框自定义标题栏、卡片式布局、渐变进度条、彩色分级日志、状态胶囊标签✨ 功能特性特性说明️跨平台一份代码同时支持 Windows / macOS / LinuxARM64 分支自动切换如 Apple Silicon 下 JDK 走 aarch64、Node 走 arm64一键装配内置8 大常用开发组件从下载 → 解压 → 环境变量配置全流程自动化动态版本抓取后台线程并发调用各组件官方 API / 索引拉取最新可用版本抓取失败自动降级到内置默认清单智能检测优先检查XXX_HOME环境变量然后回退到PATH中的可执行文件探测到即视为已配置可搜索下拉框版本多直接键入关键字实时过滤回车即可选中️环境变量写入WindowswinregsetxmacOS/Linux写入带标记的 shell 配置块幂等更新安装器模式支持.exe/.sh静默安装Miniconda无弹窗交互实时反馈进度条显示下载速度和大小可随时取消日志区彩色分级输出现代化界面圆角卡片 阴影、渐变进度条、状态胶囊标签、无边框自定义窗口偏好记忆记住上一次每个组件选择的版本下次启动自动恢复打赏支持内置微信 / 支付宝 / QQ 二维码一键支持作者 支持的组件组件显示名环境变量检测命令默认版本JDKJDK (Temurin)JAVA_HOMEjava -version21 / 17 (LTS) / 11 / 8MavenApache MavenMAVEN_HOMEmvn -v3.9.x / 3.8.xTomcatApache TomcatCATALINA_HOMEcatalina version10.1 / 9.0 / 8.5MySQLMySQL ServerMYSQL_HOMEmysql --version8.0.x / 5.7.xPythonPython— (走 PATH)python --version3.12 / 3.11 / 3.10 / 3.9Node.jsNode.jsNODE_HOMEnode --version20 LTS / 18 LTS / 16GitGit—git --versionMinGit for Windows / 系统自带MinicondaMinicondaCONDA_HOMEconda --versionpy312 / py311 / py310 启动应用后⟳ 刷新版本按钮会自动请求各官方源拉取当前所有可用版本。抓取失败会回退到硬编码的内置清单保证程序在离线环境下也可用。 环境要求Python3.9 及以上操作系统Windows 10 / 11、macOS 12、Ubuntu 20.04网络需要能访问对应组件的下载源如 Apache 归档、Adoptium API、Node.js dist 等磁盘视安装的组件而定建议预留 3 GB 以上JDKMavenNodePythonMySQL 加起来约 1.5-2 GB 快速开始本节面向开发者 / 想二次开发的用户。只想使用工具请回到下载即用。1. 克隆项目git clone https://github.com/yourname/env-auto-setup.git cd env-auto-setup2. 创建虚拟环境推荐python -m venv.venv# Windows.venv\Scripts\activate# macOS / Linuxsource.venv/bin/activate3. 安装依赖pipinstall-r requirements.txt依赖清单PySide6— Qt for Python提供跨平台 GUIrequests— HTTP 请求用于下载文件和抓取版本列表4. 启动应用pythonmain.py首次启动会自动创建工作目录~/.env-tools/# 所有下载的压缩包 / 解压后的组件都放这里├── jdk/ │ ├── downloads/# 原始压缩包│ └── jdk-17/# 解压后的 JDK├── maven/ ├── node/ └── ... 使用说明基本流程打开应用→ 主界面会显示所有支持的组件卡片每个卡片右上角会显示当前系统检测结果✓ 已配置PATH· openjdk version 17.0.10— 系统已能找到无需再装● 已下载未配置— 本地已有安装包但环境变量未设置○ 未安装— 完全没有选择版本→ 点击版本下拉框直接从列表点击选择或者输入关键字如21、3.12、LTS实时过滤点击下载并安装→ 工具会⬇️ 流式下载到 **~/.env-tools/组件/downloads/**可随时取消 解压到 **~/.env-tools/组件/组件-版本/**Miniconda 走静默安装器 自动写入XXX_HOME环境变量 把bin追加到PATH或点击配置环境变量→ 使用本地已下载的最新版本仅执行环境变量配置查看日志→ 底部日志区实时显示每一步的执行情况环境变量生效方式Windows新开命令行/PowerShell 窗口即可读到新的用户变量已打开的窗口需要重启macOS / Linuxsource~/.zshrc # 或 ~/.bashrc/ ~/.bash_profile/ ~/.profile或直接重开终端验证方法java -versionmvn -v python --versionnode-vmysql --versiongit --versionconda --version 截图预览界面元素说明顶部自定义标题栏包含 GitHub 链接、打赏按钮、窗口控制最小化 / 最大化 / 关闭中部每个组件一张卡片展示名称、状态标签、版本下拉框可搜索、操作按钮、进度条底部运行日志区四色分级输出info 灰、ok 绿、warn 橙、error 红状态栏显示当前系统信息与工作目录 配置与自定义修改 / 新增组件版本打开main.py找到build_components()函数。每个组件的默认版本列表都在这里。如需新增或调整components.append( Component(keyjdk,display_nameJDK (Temurin),env_varJAVA_HOME,path_subdirbin,exec_namejava, version_args[-version], versions[ ComponentVersion(versionv,url_map_adoptium_jdk_url(v), archive_map{Windows:zip,Darwin:tar.gz,Linux:tar.gz}, )forvin(22,21,17,11,8) # 加入 22 ], ) )⚠️ 提示versions只是离线默认清单。启动时后台会自动向官方 API 拉取真实版本覆盖此清单。你也可以通过修改FETCHERS字典自定义抓取逻辑。更换下载镜像如果官方下载慢可修改main.py中的 URL 生成函数替换成国内镜像华为云https://repo.huaweicloud.com/清华 TUNAhttps://mirrors.tuna.tsinghua.edu.cn/阿里云https://mirrors.aliyun.com/示例把 Maven 的下载地址改成清华镜像def _maven_urls(v:str)-Dict[str,str]: base fhttps://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/{v}/binaries/apache-maven-{v}-binreturn{Windows: f{base}.zip,Darwin: f{base}.tar.gz,Linux: f{base}.tar.gz, }修改工作目录默认工作目录是 **~/.env-tools/**。在main.py顶部修改CONFIG_DIR Path.home() /.env-tools 自行打包 / 发布新版本项目已经配置好 PyInstaller 与 GitHub Actions你可以本地打包单平台pip install pyinstaller pyinstaller env-auto-setup.spec--noconfirm--clean产物Windowsdist/env-auto-setup.exemacOSdist/env-auto-setup.appLinuxdist/env-auto-setup自动发布三平台版本推荐推一个 tag 到 GitHub**.github/workflows/build-and-release.yml** 会在 Windows / macOS / Linux 三个 runner 上分别打包并自动上传到对应 Releasegittag v1.0.1gitpush origin v1.0.1几分钟后到 Releases 页面就能看到三个平台的产物。 目录结构env-auto-setup/ ├── main.py# 主程序含 UI 与全部逻辑├── requirements.txt# Python 依赖清单├──env-auto-setup.spec# PyInstaller 打包配置├── README.md# 中文说明本文件├── README_EN.md# 英文说明├── LICENSE# MIT 许可证├── .gitignore# Git 忽略规则├── .github/ │ └── workflows/ │ └── build-and-release.yml# 三平台自动构建 发布└── assets/# 静态资源├──env-auto.png# 应用截图├── wechat.png# 微信收款码├── alipay.png# 支付宝收款码└── qq.png# QQ 收款码❓ 常见问题FAQQ1. 启动后下拉框显示获取失败可能是网络原因或访问受限如 GitHub API 在部分地区不稳定。工具会自动回退到内置默认版本列表仍然可以下载安装 —— 只是版本可能不是最新。默认版本完全可用。也可以更换镜像见「配置与自定义」章节。Q2. 下载卡在某个百分比不动可能是网络原因或镜像限速。点击「取消」后重试或参考配置与自定义章节替换成国内镜像。Q3. 提示环境变量写入失败Windows请以管理员身份重新启动本程序默认写入的是用户级变量通常不需要管理员权限macOS / Linux确认你有~/.zshrc等文件的写入权限Q4. 已经存在旧的JAVA_HOME会被覆盖吗会用最新一次安装的路径覆盖原有值同时把新的bin目录追加到PATH不会重复追加。Q5. MySQL 解压完成后能直接用吗不能。MySQL 解压后还需要执行mysqld --initialize等初始化步骤。本工具只完成下载 解压 环境变量三步不做数据库初始化。Q6..tar.xz归档能处理吗可以程序内置了tarfile.open(r:xz)逻辑用于 MySQL Linux 版。Q7. Windows 上 PATH 超过 1024 字符怎么办setx有 1024 字符限制工具会额外通过winreg直接写入注册表来规避该限制。Q8. Miniconda 静默安装到哪里安装到 **~/.env-tools/conda/conda-版本/**并把CONDA_HOME与bin/Scripts加入环境变量。Q9. 可以只做检测不做安装吗可以。启动时工具就会检测所有组件的状态如果所有组件都显示 ✓ 已配置说明你的系统已经就绪不需要再点任何按钮。Q10. 支持自动更新组件版本吗点击卡片的下拉框会先看到内置版本程序启动后后台自动请求官网并热更新列表。所以理论上最新版本是实时的前提是能访问对应官网。️ 技术栈LanguagePython 3.9GUI 框架PySide6Qt 6 官方 Python 绑定LGPL 授权HTTP 客户端requests压缩包解压Python 标准库zipfiletarfile环境变量Windowswinreg直写注册表 setx通知系统macOS/Linux写入 shell 配置文件**.zshrc** /.bash_profile/.bashrc/.profile多线程QThread后台下载与版本抓取UI 不阻塞架构单文件应用main.py内含 UI、数据类、业务逻辑 支持作者如果这个小工具对你有帮助欢迎请作者喝杯咖啡 ☕如果觉得有用别忘了给个 ⭐ Star项目源码地址https://github.com/vfaner/env-auto-setup