Setup — ติดตั้ง Python และสร้างโปรเจกต์
หมายเหตุเรื่อง Playground: บทนี้ว่าด้วยการติดตั้งและตั้งค่า ทุกขั้นตอนต้องใช้เทอร์มินัลจริง ต้องมี Python ติดตั้งอยู่ และต้องเข้าถึง filesystem ได้ ซึ่ง sandbox ใน browser ทำให้ไม่ได้สักอย่าง ให้รันคำสั่งด้านล่างในเทอร์มินัลของคุณเอง
การเปรียบเทียบ toolchain
หัวข้อที่มีชื่อว่า “การเปรียบเทียบ toolchain”ก่อนลงมือเขียนโค้ด ควรเห็นภาพก่อนว่า toolchain ของ Python เทียบกับฝั่ง Node ตัวไหนเป็นตัวไหน:
# Node / TypeScript toolchainnode → runtime (executes JS)npm → package manager (installs packages)npx → run a package binary without installing globallytsc → TypeScript compilerpackage.json → project manifestnode_modules/ → installed dependencies (per project)# Python toolchainpython3 → runtime (executes Python)pip → package manager (installs packages)pipx → run a tool without polluting your envmypy/pyright → optional type checker (like tsc)pyproject.toml → project manifest (modern)venv/ → isolated dependency folder (per project)ติดตั้ง Python
หัวข้อที่มีชื่อว่า “ติดตั้ง Python”macOS (แนะนำ — ใช้ Homebrew):
python3 --version # Python 3.12.xpip3 --versionWindows (แนะนำ — ใช้ installer อย่างเป็นทางการ):
- ดาวน์โหลดจาก python.org/downloads
- เช็ค “Add python.exe to PATH” ระหว่างการติดตั้ง
- เปิดเทอร์มินัลใหม่:
python --version
Linux (Ubuntu/Debian):
sudo apt update && sudo apt install python3 python3-pip python3-venvpython3 --versionVirtual environments — venv เทียบเท่ากับ node_modules
หัวข้อที่มีชื่อว่า “Virtual environments — venv เทียบเท่ากับ node_modules”ใน Node คำสั่ง npm install สร้าง node_modules/ ไว้ในโปรเจกต์ ทำให้แต่ละโปรเจกต์มี dependency ชุดของตัวเอง ฝั่ง Python ตัวที่ทำหน้าที่เดียวกันคือ virtual environment (venv) ที่เป็นไดเรกทอรีแยกที่เก็บทั้ง Python interpreter และ package ไว้ในนั้น
ถ้าไม่ใช้ venv คำสั่ง pip install จะลง package ระดับ global แล้วโปรเจกต์ต่าง ๆ จะชนกันเอง ดังนั้นใช้ venv เสมอ
# Node: project isolation is automaticmkdir my-project && cd my-projectnpm init -ynpm install express # goes into ./node_modules# no extra setup needed# Python: you must explicitly create isolationmkdir my-project && cd my-projectpython3 -m venv venv # creates ./venv directorysource venv/bin/activate # macOS/Linux# venv\Scripts\activate # Windows PowerShell
pip install fastapi # installs into ./venv, not globallypython3 script.pyพอรัน source venv/bin/activate แล้ว prompt จะขึ้น (venv) ให้เห็น จากจุดนี้ python และ pip จะชี้ไปที่ venv ของโปรเจกต์ ถ้าจะออกก็สั่ง deactivate
การรัน scripts
หัวข้อที่มีชื่อว่า “การรัน scripts”# TypeScriptnpx ts-node src/index.ts # run directlynpx tsc && node dist/index.js # compile then runnpm run dev # package.json script# Pythonpython3 src/main.py # run directly, no compilepython3 -m module_name # run a module as a scriptpython3 -i src/main.py # run then drop into REPLการติดตั้งและบันทึก dependencies
หัวข้อที่มีชื่อว่า “การติดตั้งและบันทึก dependencies”# Nodenpm install express # install + save to package.jsonnpm install --save-dev jest # devDependencynpm install # install from package.jsonnpm ci # clean install from package-lock.json# Python (classic workflow)pip install fastapi # installs but does NOT savepip freeze > requirements.txt # snapshot current envpip install -r requirements.txt # install from snapshot
# Modern workflow with pyproject.tomlpip install . # install project deps from pyproject.tomlตัวอย่าง workflow ฉบับสมบูรณ์
หัวข้อที่มีชื่อว่า “ตัวอย่าง workflow ฉบับสมบูรณ์”นี่คือลำดับขั้นตอน “เริ่มโปรเจกต์ Python ใหม่” แบบเต็ม วางเทียบกับสิ่งที่คุณทำตอนเริ่มโปรเจกต์ Node:
# Node project setupmkdir api && cd apinpm init -ynpm install express typescript ts-node @types/nodenpx tsc --init# edit tsconfig.json...npm run dev# Python project setupmkdir api && cd apipython3 -m venv venvsource venv/bin/activate # activate venvpip install fastapi uvicorn
# Run the appuvicorn main:app --reload
# Capture deps for teammatespip freeze > requirements.txt