
Odoo 19 安裝:使用 Antigravity 在 Windows 上安裝,透過 AI 改寫 Yenthe666 腳本
最近很多人問我 Odoo 19 的成本問題,近期剛好有些時間,決定啟動 19 版本並進行安裝測試。這篇文章我們來探討開發者最痛的核心問題:如何在 Windows 電腦上優雅且無痛地安裝 Odoo 19?
Topics
WRITTEN BY

- Name
- Harry Chang
去年十月發布的 19 版本,在計價範圍與成本計算方式上有大幅度的改動(若對於這部分還不了解的朋友,強烈建議先參考這支解析影片:New era of stock valuation in Odoo 19: Simpler, yet broader in scope)。
最近這陣子,滿多業界朋友問我:「 Odoo 19 的成本,是不是符合台灣企業使用?」,老實說我也一年沒接觸原生了,AI賦能下都自己寫比較多,近期有點時間想來看看19的改變與研究成本架構。
既然決心要研究 19 版本,為了接下來方便與 AI 協作,來進一步剖析新版的系統與成本架構,我決定先快速將它安裝在熟悉的 Windows 環境裡,並順便紀錄一下這次的開發環境建置方式。
版本紀錄與環境沿用
在開始之前,必須先釐清「基礎設施」的狀態。因為我的電腦裡早已經擁有一套 Odoo 17 的開發環境了,身為一個技術人員,當然希望能沿用,
經過測試後確認了一件好消息:Odoo 19 依然可以沿用 Odoo 17 時期安裝的 Python 3.10 與 PostgreSQL 14。 也就是說,我們不需要移除任何舊版資料庫,直接就可以在這個基礎上開工。
在尚未深入解析 Odoo 19 的底層架構前,直接以經典的 Yenthe666 安裝腳本作為改寫基底,無疑是最穩妥的策略。這不僅大幅降低了試錯風險,也為我們提供了一個具備公信力的對照基準。
既然底層的 Python 3.10 與 PostgreSQL 已經就緒,於是我直接呼叫了 AI 助手(Antigravity),請它參考 Yenthe666 的安裝邏輯,並根據我 Windows 電腦的現況,量身定製一份極度輕量化的安裝腳本!

WNDOWS版本注意事項:
看到這裡你可能會問:「所以我只要按下執行鍵,真的能搞定一切嗎?」 答案是:有前提的。 腳本幫你處理了最冗長的「環境隔離與套件佈署」,但在 Windows 系統上,你仍然有必須手動介入的基礎建設:
⚠️ 必備:Windows C++ 構建工具 (Visual Studio Build Tools) 當你執行到「步驟 5」去跑
pip install時,非常容易在安裝psycopg2、lxml或greenlet等套件時噴出大量紅字錯誤。這是因為這些套件通常包含 C 語言的底層代碼,在 Windows 往往缺乏預編譯包(Wheel)。解決方案:請務必先去微軟官網下載 Visual Studio Build Tools,並在安裝選項中打勾安裝「使用 C++ 的桌面開發 (Desktop development with C++)」。沒有這項前置武器,Python 根本無法在你的 Windows 電腦上編譯這些核心套件!
安裝篇:詳細解剖 AI 生成的 install_odoo19.ps1
經過 AI (Antigravity) 修正與測試後,最終產出的這份 PowerShell 腳本完美解決了開發機最核心的「環境隔離」需求。整支腳本不到 50 行程式碼,卻完整涵蓋了乾淨建置的 6 大核心步驟:
$ErrorActionPreference = "Stop"
$OdooVersion = "19.0"
$BaseDir = "C:\odoo"
$InstallDir = "$BaseDir\odoo-19.0"
$VenvDir = "$BaseDir\venv_odoo19"
$PythonCmd = "$env:LOCALAPPDATA\Programs\Python\Python310\python.exe"
Write-Host "========================================="
Write-Host " Odoo 19.0 Windows Installation "
Write-Host "========================================="
Write-Host "`n[1] Checking Python 3.10..."
try {
& $PythonCmd --version
}
catch {
Write-Error "Cannot find Python 3.10"
exit
}
Write-Host "`n[2] Creating virtual environment ($VenvDir)..."
if (-Not (Test-Path $VenvDir)) {
& $PythonCmd -m venv $VenvDir
}
else {
Write-Host "Virtual environment already exists."
}
Write-Host "`n[3] Upgrading pip in venv..."
& "$VenvDir\Scripts\python.exe" -m pip install --upgrade pip wheel setuptools
Write-Host "`n[4] Cloning Odoo 19.0 source code to $InstallDir..."
if (-Not (Test-Path $InstallDir)) {
git clone https://github.com/odoo/odoo.git -b $OdooVersion --depth 1 $InstallDir
}
else {
Write-Host "Odoo 19 directory already exists."
}
Write-Host "`n[5] Installing requirements.txt dependencies..."
if (Test-Path "$InstallDir\requirements.txt") {
$ErrorActionPreference = "Continue"
& "$VenvDir\Scripts\pip.exe" install -r "$InstallDir\requirements.txt"
$ErrorActionPreference = "Stop"
}
Write-Host "`n[6] Odoo 19 deployment complete! No existing database was touched."
步驟 1:檢查 Python 3.10
腳本首先會確認 $env:LOCALAPPDATA\Programs\Python\Python310\python.exe 存在。確保環境中擁有正確的底層解譯器版號,這是後續啟動隔離環境的大前提。
步驟 2:建立虛擬環境
過去不管是 Odoo 17 還是 19,依賴套件全塞在同一個全域環境下是災難的開始。這步利用了 Python 內建的 venv 技術,自動在 C:\odoo\ 目錄下建立一個名為 venv_odoo19 的資料夾。 這使得 Odoo 19 後續需要的任何第三方套件都被精準鎖定在這裡,絕對不會異動到原有的 Odoo 17 開發環境!
步驟 3:升級核心包 (pip, wheel, setuptools)
在虛擬環境建立後,腳本會自動將套件管理工具升級到最新版,避免後續編譯某些第三方 Odoo 原生套件時發生不可預期的編譯錯誤。
步驟 4:下載 Odoo 19 原始碼
利用 git clone -b 19.0 --depth 1 指令,腳本只會提取 GitHub 上最新的 19.0 版本程式碼放置到 C:\odoo\odoo-19.0。捨棄了龐大的歷史 Commit 紀錄,讓整體下載與建置速度變得飛快。
步驟 5:安裝 requirements.txt 依賴
在確認 requirements.txt 存在後,透過指定執行虛擬環境中的 pip.exe,系統會被強制要求所有 Python 相依套件都只能安裝在「步驟 2 創造的泡泡」內,維持了全域環境的純潔性。
步驟 6:顯示訊息
腳本執行到最後,提示安裝完畢且「沒有更動現有資料庫」。
啟動篇:我有屬於自己的 odoo.conf
環境安裝好之後,為了能讓 Odoo 17 與 Odoo 19 在同一台電腦上並存運行,AI 另外準備了一支只有 10 行的啟動腳本 run_odoo19.ps1。它的特別之處在於,明確指定了載入自己的 odoo.conf:
$ErrorActionPreference = "Stop"
$VenvDir = "C:\odoo\venv_odoo19"
$PythonCmd = "$VenvDir\Scripts\python.exe"
$OdooBin = "C:\odoo\odoo-19.0\odoo-bin"
$OdooConf = "C:\odoo\odoo-19.0\odoo.conf"
Write-Host "Starting Odoo 19 (Port 8079) with config: $OdooConf"
& $PythonCmd $OdooBin -c $OdooConf
透過只有短短 10 行的啟動腳本,我們將「啟動流程」變得極致透明且可控。解剖這支腳本,主要有兩個關鍵亮點:
強制使用隔離泡泡的 Python解譯器
$PythonCmd = "$VenvDir\Scripts\python.exe"這行是防呆的精隨!啟動 Odoo 時,我們堅決不使用系統公用的 Python,而是明確指定呼叫我們在安裝階段建立的
venv_odoo19裡面的解譯器。這樣能百分之百保證只有 Odoo 19 的專屬套件會被載入。掛載專屬的設定檔
-c $OdooConf& $PythonCmd $OdooBin -c $OdooConf透過明確的參數傳遞,系統知道去讀取對應的
odoo.conf。在這個配置檔中,我們可以自由把啟動 Port 設為 8079(保留預設的 8069 給 Odoo 17)。
想切換版本工作?你唯一要做的就是切斷目前的終端機,改為點擊執行另一支專案的 PS1 啟動腳本,俐落又乾淨!
結語
回顧這次的建置,我其實啟動的也滿驚訝真的可以使用,整體安裝時間大概 10 分鐘內。中間的過程,我其實只有跟 AI 下達了一個指令:「你根據這個腳本的邏輯,自己跑測試,直到能成功跑出 Odoo 的安裝網頁介面後,我再來接手登入測試。」
相較過往我安裝一個環境順利是一個小時,不順利是一個上午甚至是裝不起來,這次的體驗其實省下了傳統手動除錯、爬文看「為什麼依賴裝不起來」的時間。我能很快地就踏入瀏覽器介面,也能有時間寫寫文章進行記錄,剩下把寶貴的時間還給「顧問工作」的本質——也就是開始深入研究 Odoo 19 的新商業邏輯,真正的生產力革命才算剛剛開始。

參考資料 (References)
- Yenthe666/InstallScript: 本次輕量 Windows 版的邏輯靈感來源