跳轉到

1.3 環境建置#

本節目標#

  • 建立一個能舒服使用 SymPy 的開發環境
  • 學會 Jupyter Notebook / JupyterLab 的基本操作
  • 認識 VS Code 與 Google Colab 兩種替代方案
  • 完成第一次 init_session() 啟動

三條路,任選一條#

方案 適合誰 特點
Anaconda / Miniconda + Jupyter 數學、資料科學背景 一次裝好,最省事
VS Code + Python extension 習慣寫程式的學生 編輯器即環境
Google Colab 不想安裝任何東西 打開瀏覽器就能用

方案一:Anaconda / Miniconda#

Anaconda 是「Python + 科學計算全家桶」的發行版,SymPy、NumPy、Jupyter 都已內建。到 anaconda.com 下載對應作業系統的安裝程式,一路按下一步即可。

嫌 Anaconda 太肥(數 GB)的話,改用精簡版 Miniconda,只含 Python 與 conda 套件管理器,再自行安裝需要的東西:

conda install sympy jupyter

建議為本書建立一個獨立環境(避免汙染系統 Python):

conda create -n sympy-math python=3.12
conda activate sympy-math
conda install sympy jupyter matplotlib

pip 安裝(輕量路線)#

若你已有 Python 但不想用 conda,直接:

pip install sympy
pip install jupyterlab    # 可選:裝 JupyterLab

Jupyter Notebook / JupyterLab 使用導覽#

Jupyter 是「筆記本式」的程式介面:你在一格一格的儲存格(cell)裡寫程式,按 Shift + Enter 執行該格,結果顯示在格子下方。這種互動模式非常適合數學計算——算一步看一步。

啟動方式:

jupyter lab      # 新版介面(推薦)
jupyter notebook # 經典介面

介面導覽(文字版):

  • 瀏覽器視窗:左側是檔案列表,右側是工作區。
  • 儲存格:有兩種常用型態——「Code」(Python 程式)與「Markdown」(筆記文字)。用工具列下拉選單切換。
  • 執行:Shift + Enter 執行目前儲存格並跳到下一格;Ctrl + Enter 執行但不跳格。
  • 程式狀態:儲存格左邊的 [ ] 顯示執行序號,[*] 表示正在執行。
  • 核心(kernel):選單 Kernel → Restart 可以重開 Python 程序,當變數狀態混亂時就重啟。
  • 兩種模式:編輯模式(綠框,可打字)與命令模式(藍框,按 Esc 進入,可用快速鍵如 a 在上方新增格、b 在下方新增格、dd 刪除格)。

Jupyter 對 SymPy 特別友好:它能用 MathJax 把 SymPy 的輸出渲染成排版精美的數學式,例如直接顯示 \(\frac{2}{3}\) 而不是 2/3。

方案二:VS Code + Python extension#

  1. 安裝 Visual Studio Code。
  2. 在延伸模組(Extensions)面板搜尋並安裝 Python(微軟官方,含 Pylance)。
  3. 可選:安裝 Jupyter 延伸模組,就能在 VS Code 裡直接開 .ipynb 筆記本。
  4. 右上角選擇 Python 直譯器(若用了 conda 環境,選 sympy-math 環境裡的)。
  5. 新增檔案 test.py,輸入 import sympy 後執行,確認沒有錯誤。

方案三:Google Colab(零安裝)#

不想動本機?開瀏覽器到 colab.research.google.com,登入 Google 帳號,新增筆記本即可。Colab 已內建 SymPy,直接 import sympy 就能用。缺點是需要網路、檔案存在雲端。

首次啟動 SymPy#

在本書中,每個程式區塊都假設你已經做過「初始化」。最懶惰也最方便的初始化是:

from sympy import *
init_session()

init_session() 會一次幫你做好三件事:

  1. 自動宣告常用符號 x, y, z, t 與常用函數、常數
  2. 開啟漂亮的數學排版(pretty printing)
  3. 顯示你的 SymPy 版本資訊

執行後你會看到類似訊息:

IPython console for SymPy 1.13 (Python 3.12.0) ...
These commands were executed:
>>> from sympy import *
>>> x, y, z, t = symbols('x y z t')
>>> k, m, n = symbols('k m n', integer=True)
>>> f, g, h = symbols('f g h', cls=Function)

之後就能直接用 x、y 寫數學式了。本書為了讓每段程式可獨立執行,多數時候會明確寫出 from sympy import * 與 symbols(),但在 Jupyter 裡用 init_session() 最順手。

驗證安裝#

不管用哪種方案,跑這一段做最終確認:

import sympy

print(sympy.__version__)           # 例如 1.13.3
from sympy import sqrt, simplify
print(simplify(sqrt(2)**2))        # 應該輸出 2

兩行輸出都正確,環境就建置完成了。

動手實驗#

實驗 1:查出自己的環境資訊,記錄在筆記本第一格:

import sys, sympy
print(sys.version)        # Python 版本
print(sympy.__version__)  # SymPy 版本

實驗 2:體驗 Jupyter 的數學排版。在 Jupyter 中執行:

from sympy import *
init_session(quiet=True)
Integral(exp(-x**2), (x, -oo, oo))

最後一格不寫 print,直接讓運算式作為儲存格的「回傳值」,就會看到排版後的積分式。把它改寫成 print(...) 再比較兩種輸出。

實驗 3:在 Colab 中執行本章 1.1 節的所有實驗,確認雲端環境與本機結果一致。

小結與練習#

  • 三種環境:Anaconda/Miniconda(全家桶)、pip 輕量安裝、Google Colab(零安裝)。
  • Jupyter 以儲存格互動執行,配合 SymPy 可顯示排版數學式,最適合邊算邊學。
  • init_session() 是懶人初始化;sympy.__version__ 可驗證安裝。

練習

  1. 在你的環境中建立一個 sympy-math 資料夾,放一個 check.py,內容為版本驗證程式並成功執行。
  2. 在 Jupyter 中練習:新增儲存格、切換 Code/Markdown、重啟 kernel 三個操作。
  3. 比較 init_session() 與手動 from sympy import * + symbols() 兩種寫法的差異,想想要什麼時候該用哪一種。