Python 虛擬主機是什麼?
Python 虛擬主機是可以直接執行 Python 網站程式的共享主機:在 cPanel 點選建立應用程式、選好 Python 版本,就能把 Flask、Django 這類專案掛上網域運作。一般只支援 PHP 的主機,把 .py 檔上傳上去不會被執行;要跑 Python,主機端必須有對應的直譯器、每個應用程式各自的虛擬環境,以及把網址請求交給 Python 程式的介面。
瑪尼國際的 Linux 虛擬主機透過 CloudLinux 的應用程式選擇器提供這整套環境,所以 Python 虛擬主機不是另一條產品線,而是 Linux 虛擬主機本來就附的能力:同一個帳號,官網用 PHP 或 WordPress,旁邊再跑一支 Python 服務,同一部主機、同一份年費。
在 cPanel 建立 Python 應用程式要幾個步驟?
四個步驟:建立應用程式、上傳程式、安裝套件、重新啟動。全部在 cPanel 的「Setup Python App」完成,不需要自己編譯直譯器:
- 在 cPanel 開啟「Setup Python App」,選擇 Python 版本,指定應用程式目錄與要綁定的網域或子目錄。
- 系統自動建立獨立的虛擬環境與進入點檔案 passenger_wsgi.py,把您的程式上傳到應用程式目錄。
- 在介面中指定 requirements.txt 一鍵安裝套件,或用 SSH 進入虛擬環境自行 pip install。
- 按下重新啟動,網址就會交由您的 Python 程式回應;環境變數(例如 API 金鑰)也可以在同一個畫面設定,不必寫死在程式碼裡。
每個應用程式的虛擬環境彼此獨立,一個專案升級套件不會影響另一個專案。
支援哪些框架?FastAPI 可以用嗎?
Flask、Django 等 WSGI 框架可以直接使用;FastAPI 這類 ASGI 框架需透過轉接套件掛載。實務上的常見用途:
- Django/Flask 網站或後台:公司內部的報表系統、訂單查詢、表單後端。
- API 服務:提供給 App 或前端呼叫的 JSON API,搭配 MySQL 資料庫。
- LINE 機器人與 webhook:接收平台推送的事件並回應,屬於「有請求才執行」的型態,適合共享主機。
- 串接 OpenAI、Gemini 等 API:把生成式 AI 功能包成公司內部工具,模型在對方雲端執行,主機只負責收送資料。
FastAPI 以 ASGI 轉 WSGI 的套件(例如 a2wsgi)包一層即可運作,一般的 REST API 沒有問題;重度依賴 WebSocket 或長時間串流回應的服務,請改用 VPS 主機。
Django 部署到 Python 虛擬主機:上線前要改的 5 項設定
關掉 DEBUG、填 ALLOWED_HOSTS、把靜態檔收進 public_html、資料庫改連 MySQL(用 PyMySQL)、機密改用環境變數。Django 5.2 LTS 需要 Python 3.10 以上、Django 6.0 需要 3.12 以上,主機的 3.12 與 3.13 兩個版本都能用。逐項說明:
- DEBUG = False:開著 DEBUG,出錯時會把設定值與程式路徑直接顯示在網頁上。
- ALLOWED_HOSTS:填入網域,例如
['example.com', 'www.example.com'],否則 DEBUG 關閉後每個請求都回 400。 - 靜態檔:
STATIC_ROOT設成/home/帳號/public_html/static,執行python manage.py collectstatic,CSS、JS 與圖片由網頁伺服器直接提供,不經過 Python;使用者上傳檔案的MEDIA_ROOT也放在 public_html 底下。 - MySQL 驅動用 PyMySQL:mysqlclient 安裝時要編譯 C 程式,共享主機的帳號環境沒有編譯器會裝不起來;PyMySQL 是純 Python,
pip install PyMySQL就好,再加下面三行。 - SECRET_KEY 與資料庫密碼:在 cPanel「Setup Python App」設成環境變數,settings.py 用
os.environ讀取,不要寫在程式碼裡、更不要放進 Git。
# 專案名稱/__init__.py(與 settings.py 同一層)
import pymysql
pymysql.version_info = (2, 2, 1, "final", 0) # Django 5.1 起會檢查驅動版本
pymysql.install_as_MySQLdb()
settings.py 的 DATABASES 照一般 MySQL 寫法(ENGINE: django.db.backends.mysql),資料庫名稱與帳號在 cPanel 的 MySQL 精靈建立;改完執行 python manage.py migrate,再按 Restart。Flask 或 FastAPI 用 SQLAlchemy 的話,連線字串寫 mysql+pymysql://帳號:密碼@localhost/資料庫。
Python 主機可以選哪些版本?新專案用哪一版?
可以選 Python 3.13、3.12、3.11,另外保留 3.3~3.8 與 2.7 給舊專案沿用;新專案建議用 3.12 或 3.13。版本在 cPanel 建立應用程式時選擇,每個應用程式各自獨立,同一個帳號裡的兩個專案可以用不同版本:
| 版本 | 瑪尼國際主機 | 官方支援 |
|---|---|---|
| Python 3.13(主機現為 3.13.18) | 可選 | 安全性更新到 2029 年 10 月 |
| Python 3.12(主機現為 3.12.16) | 可選(建議) | 安全性更新到 2028 年 10 月 |
| Python 3.11(主機現為 3.11.18) | 可選 | 安全性更新到 2027 年 10 月 |
| Python 3.3~3.8、2.7 | 可選,供暫時無法改寫的舊專案使用 | 官方已停止支援 |
3.8 以前的版本已經收不到安全性修補,新寫的程式不要再用;舊專案要升版,建議先在本機用新版本跑過 requirements.txt 與測試,再到 cPanel 建一個新版本的應用程式切換過去,舊的應用程式先留著當退路。
實測:Python 應用程式第一次開啟要多久?
2026 年 11 月在主機上以 Python 3.12 執行 FastAPI 範例程式(經 a2wsgi 掛載)實測:閒置後的第一個請求約 1.1 秒,已啟動後的請求約 3 毫秒。兩者差在第一個請求要先啟動行程、載入套件;應用程式閒置約 5 分鐘後,行程會被回收讓出資源,下一個請求再重新啟動一次。
- 對使用者的影響:一段時間沒人用的後台或 API,第一個開啟的人會多等約 1 秒,之後恢復正常速度。
- 縮短冷啟動:pandas 這類載入很慢的套件,改在用到的函式裡才 import,不要放在程式最上方;Django 專案載入的模組較多,冷啟動通常比 Flask、FastAPI 長。
- 對延遲很敏感的服務:需要每個請求都在毫秒級回應、不能接受偶爾 1 秒的服務,建議改用 VPS 主機讓行程常駐。
部署 Python 應用程式最常遇到的 3 個錯誤
啟動檔寫錯、套件裝錯環境、改完程式沒重新啟動,這三種佔了開通後詢問的大多數。症狀與改法如下:
- 網頁顯示「Web application could not be started」,記錄裡有 RecursionError:passenger_wsgi.py 裡用 load_source 載入的檔案又是 passenger_wsgi.py 自己,會一直重複載入自己而出錯。改法是讓 passenger_wsgi.py 直接匯入您的程式,例如 Flask 寫
from app import app as application;FastAPI 寫from a2wsgi import ASGIMiddleware、from main import app、application = ASGIMiddleware(app)。 - 出現 ModuleNotFoundError:套件裝到系統的 Python,而不是這個應用程式的虛擬環境。先執行 cPanel「Setup Python App」畫面上方顯示的
source …/bin/activate指令進入虛擬環境,再pip install -r requirements.txt。 - 改了程式,網站還是舊的:行程還在執行舊版本。在 cPanel 按「Restart」,或在應用程式目錄建立(或更新時間)
tmp/restart.txt,下一個請求就會載入新程式。
開通後部署卡住,可以透過線上客服把錯誤畫面或記錄傳給我們,我們協助判斷是程式還是環境的問題。
Python 虛擬主機年繳和兩年繳差多少?
選兩年期比連續年繳兩次便宜:基本型省 700 元、經濟型省 600 元、商務型省 4,000 元。依方案表的價格試算:
| 方案 | 年繳兩次 | 兩年期 | 省下 | 兩年期平均每月 |
|---|---|---|---|---|
| 基本型 | NT$7,000 | NT$6,300 | NT$700 | 約 NT$263 |
| 經濟型 | NT$10,000 | NT$9,400 | NT$600 | 約 NT$392 |
| 商務型 | NT$20,000 | NT$16,000 | NT$4,000 | 約 NT$667 |
經濟型與商務型另有終生型,一次付 50,000 元,等於經濟型年繳 10 年、商務型年繳 5 年的費用。虛擬主機整體怎麼挑、能做什麼、搬家要注意哪些事,可以看虛擬主機完整指南。
Python 虛擬主機和 VPS 怎麼選?
網站、API、LINE 機器人這類「有人連線才執行」的 Python 程式,選 Python 虛擬主機(年繳 3,500 元起);常駐爬蟲、佇列工作者、需要 root 或 GPU,選 VPS(年繳 48,000 元起)以上。逐項對照:
| 比較項目 | Python 虛擬主機 | VPS 主機 |
|---|---|---|
| 年繳費用 | 3,500 元起(兩年期 6,300 元) | 48,000 元起(4 vCPU/4 GB RAM) |
| 管理方式 | cPanel 點選建立應用程式、選版本、pip 安裝 | 完整 root 權限,自行安裝 Python、Gunicorn、Nginx |
| 執行介面 | WSGI(Django、Flask 直接;FastAPI 經 a2wsgi) | WSGI/ASGI 都可,Uvicorn 原生執行 FastAPI |
| 行程 | 有請求才啟動,閒置約 5 分鐘回收 | 常駐執行 |
| 套件安裝 | pip 純 Python 套件與已有預編譯版本的套件 | 可自行編譯、安裝系統套件 |
| 定時任務 | cPanel Cron Jobs | crontab、systemd、Celery |
| 適合 | Django/Flask 網站、REST API、LINE webhook、串接 OpenAI/Gemini | 爬蟲、背景佇列、WebSocket 即時服務、本機模型推論 |
Python 虛擬主機的限制與替代方案
判斷基準是「程式是不是只在有人連線時才執行」。共享主機會回收閒置的應用程式行程,把資源留給同機的其他帳號,所以下列情況不適合:
- 需要 24 小時常駐的背景程式、長時間爬蟲或佇列工作者(定時任務可改用 cPanel 的 Cron Jobs 排程執行)。
- 需要 GPU、大量記憶體的模型訓練或本機推論。
- 必須安裝系統層級套件、使用 Docker 或需要 root 權限。
遇到這些需求,VPS 主機提供完整 root 權限與自訂環境;需要獨立硬體則看實體主機。同樣的應用程式選擇器也支援 Node.js 虛擬主機與 Ruby 虛擬主機,三種語言可以在同一個帳號並存。版本需求請在簽約前告知,我們先確認主機上可選的版本再開通,來電 0800-670000。