>> 安裝 ImageMagick 又報錯閃退?用 2026 最新 uv sync --frozen 跑通 MoneyPrinterTurbo 避坑指南
你 clone 了 MoneyPrinterTurbo,结果視窗一闪就关、Streamlit 紅字報錯,或字幕阶段提示 ImageMagick is not installed。自 v1.2.7(2026 年 4 月)起,專案以 uv、pyproject.toml 與 uv.lock 為主,在 macOS / Linux 上推薦 uv sync --frozen 安裝依賴。
簡介
本文面向已有來源码壓縮包、但 Python 環境尚未跑通的新手:安裝正确 Python 版本、按維護者鎖定的依賴同步、把 ImageMagick 指到正确二進位,再启动 Web UI。
Windows 一键包仍是该平台上最快的試用方式;macOS / Linux 請以 uv sync --frozen 為主流程,與 v1.2.7 測試过的 lockfile 一致。
若你在搭建更广泛的 AI 自动化能力(评测、Agent),可参考 2026 开发者必備的 AI 技能——與本文安裝步驟正交。
選擇安裝路徑
| 路徑 | 適合人群 | 耗時 | 依賴工具 |
|---|---|---|---|
| Windows 一键包 | Windows 上最快演示 | 约 10 分钟 | 捆綁二進位 |
uv sync --frozen(本文) | macOS / Linux / 动手型 Windows | 约 15–25 分钟 | uv + uv.lock |
| Docker | 隔離環境 | 约 15 分钟 | docker compose |
macOS / Linux 请用 uv sync --frozen。 Windows 可先一键包;需要最新 main 或自訂 config.toml 时再切到 uv。
架構:安裝後跑什么
| 元件 | 作用 | 預設連接埠 |
|---|---|---|
| Streamlit Web UI | 瀏覽器控制台 | 8501 |
FastAPI(main.py) | API 服務(可選) | 8080 |
| ImageMagick | 字幕/标题渲染 | CLI(magick) |
| FFmpeg | 影片合成 | CLI |
設定檔:專案根目錄 config.toml,新手關鍵字段:
imagemagick_path = "C:\\Program Files\\ImageMagick-7.1.1-Q16\\magick.exe" # Windows 範例
# macOS/Linux 常見:"/opt/homebrew/bin/magick" 或 "/usr/bin/magick"
資料流:Web UI → Python 服務 → ImageMagick 绘字 → FFmpeg 混流。imagemagick_path 設錯會在第一次字幕任務即失敗。
前置條件
- 已安裝 Git(
git --version)。 - 已安裝 uv(Astral uv 文件):
curl -LsSf https://astral.sh/uv/install.sh | sh # 或:pip install uv - ImageMagick 7(Windows 需 static 版,見步驟 4)。
- FFmpeg 在 PATH 上(
ffmpeg -version)。 - Windows 上專案路徑勿含中文(上游警告非 ASCII 路徑會導致不可預期失敗)。
Python 版本:3.11(uv.lock 要求 >=3.11, <3.13)。
七步跑通手冊
步驟 1 — 複製并進入專案根目錄
git clone https://github.com/harry0703/MoneyPrinterTurbo.git
cd MoneyPrinterTurbo
pwd # 必須以 MoneyPrinterTurbo 結尾
通過: 能看到 pyproject.toml、uv.lock、config.toml、webui/Main.py。
步驟 2 — 用 uv 安裝 Python 3.11
uv python install 3.11
uv python list
通過: 清單中有 3.11.x。
步驟 3 — 同步依賴(凍結鎖)
uv sync --frozen
為何 --frozen? 按 uv.lock 安裝精確版本,與 v1.2.7 維護者測試集一致;不凍結时解析器漂移可能破壞 Edge TTS 或影片管線 pin。
典型耗時:快取命中时 40–90 秒;首次更久。
通過: 結束碼 0,存在 .venv。
步驟 4 — 安裝並設定 ImageMagick
macOS
brew install imagemagick
which magick || which convert
在 config.toml 中設定:
imagemagick_path = "/opt/homebrew/bin/magick"
(Intel Mac 可能為 /usr/local/bin/magick。)
Linux
sudo apt-get update && sudo apt-get install -y imagemagick ffmpeg
which magick
Windows
- 从 ImageMagick 下載頁 取得 Q16-x64-static 安裝包,檔名須含
static。 - 安裝到
C:\Program Files\預設路徑,勿改安裝目錄。 - 編輯
config.toml:
imagemagick_path = "C:\\Program Files\\ImageMagick-7.1.1-Q16\\magick.exe"
驗證:
& "C:\Program Files\ImageMagick-7.1.1-Q16\magick.exe" -version
步驟 5 — 修復 ImageMagick 原則(字幕失敗时)
特徵: 報錯含 not authorized 或 security policy。
編輯 policy.xml(Linux 常見 /etc/ImageMagick-6/policy.xml 或 /etc/ImageMagick-7/policy.xml):
<policy domain="path" rights="read|write" pattern="@*" />
修改後重新啟動應用程式。
步驟 6 — 启动 Streamlit Web UI
僅在專案根目錄執行:
uv run streamlit run ./webui/Main.py --browser.gatherUsageStats=False --server.port 8501
開啟 http://localhost:8501。首次載入可能需 30–60 秒 編譯匯入。
可選 API 模式:uv run python main.py
步驟 7 — 長時間轉檔前冒煙測試
- 使用短文案(2–3 句)。
- 選一個影片來源(Pexels/Pixabay,必要時在
config.toml填 API Key)。 - 生成 10–15 秒 樣片。
- 在
storage/或 UI 提示路徑確認輸出。
通過: MP4 可播放且字幕可讀。失敗: 儲存完整終端機 traceback,不要只截閃退視窗。
排錯
錯誤 A — 雙擊後視窗閃退
特徵: 雙擊 start.bat 或 python,控制台一秒消失。
修復: 在終端機執行以保留錯誤信息:
cd /path/to/MoneyPrinterTurbo
uv run streamlit run ./webui/Main.py --browser.gatherUsageStats=False
Windows:Win+R → cmd → cd 到專案 → 同上指令。
錯誤 B — ImageMagick is not installed
| 檢查項 | 指令/操作 |
|---|---|
| 二進位存在 | magick -version 或步驟 4 路徑 |
Windows config.toml 使用双反斜杠 | 用編輯器開啟確認 |
| 安裝/專案路徑無中文 | 移到如 C:\dev\MoneyPrinterTurbo |
錯誤 C — Streamlit 能開但卡頓/假死
- 關閉其他重負載應用程式;首次執行会編譯快取。
- 確認
ffmpeg -version正常。 - 降低 UI 並行任務;建議 8GB+ 記憶體。
- 連接埠衝突時用
--server.port 8502。
uv run streamlit run ./webui/Main.py --server.port 8502 --browser.gatherUsageStats=False
何時更新依賴
git pull 後執行 uv sync --frozen。若 lock 已變且 --frozen 失敗,再執行 uv sync(僅在你主動接受解析器升級时)。
常見问题
uv sync --frozen 对 MoneyPrinterTurbo 做什麼?
按 uv.lock 精確版本 建立/更新 .venv,與 v1.2.7 維護者測試環境一致,比未 pin 的 pip install 更快、更可重現。
Windows 為何必須用 static 版 ImageMagick?
上游要求 Q16-x64-static,以符合 MoviePy/字幕工具鏈;動態版常在執行时崩潰。
能否用 pip install -r requirements.txt?
舊流程可用,但 v1.2.7 起以 pyproject.toml + uv.lock 為主;macOS/Linux 優先 uv sync --frozen。
為何 Streamlit 用 8501 連接埠?
Streamlit 預設連接埠;API 模式常用 8080,請確保連接埠未被占用或用 --server.port 改對應。
必須用雲 Mac 吗?
不必。本機具備 Python 3.11、ImageMagick、FFmpeg 即可;僅当本機記憶體/磁盘不足做影片任務时,可在遠端 Mac 上執行相同 uv 指令。
一键包 vs uv 怎麼選?
Windows 快速試用選一键包;要最新代码、自訂設定或 macOS/Linux 官方流程選 uv sync --frozen(見專案 README)。