ข้ามไปยังเนื้อหา

Setup — ติดตั้ง Python และสร้างโปรเจกต์

หมายเหตุเรื่อง Playground: บทนี้ว่าด้วยการติดตั้งและตั้งค่า ทุกขั้นตอนต้องใช้เทอร์มินัลจริง ต้องมี Python ติดตั้งอยู่ และต้องเข้าถึง filesystem ได้ ซึ่ง sandbox ใน browser ทำให้ไม่ได้สักอย่าง ให้รันคำสั่งด้านล่างในเทอร์มินัลของคุณเอง

ก่อนลงมือเขียนโค้ด ควรเห็นภาพก่อนว่า toolchain ของ Python เทียบกับฝั่ง Node ตัวไหนเป็นตัวไหน:

TypeScript
# Node / TypeScript toolchain
node → runtime (executes JS)
npm → package manager (installs packages)
npx → run a package binary without installing globally
tsc → TypeScript compiler
package.json → project manifest
node_modules/ → installed dependencies (per project)
Python
# Python toolchain
python3 → runtime (executes Python)
pip → package manager (installs packages)
pipx → run a tool without polluting your env
mypy/pyright → optional type checker (like tsc)
pyproject.toml → project manifest (modern)
venv/ → isolated dependency folder (per project)

macOS (แนะนำ — ใช้ Homebrew):

Terminal window
brew install [email protected]
python3 --version # Python 3.12.x
pip3 --version

Windows (แนะนำ — ใช้ installer อย่างเป็นทางการ):

  1. ดาวน์โหลดจาก python.org/downloads
  2. เช็ค “Add python.exe to PATH” ระหว่างการติดตั้ง
  3. เปิดเทอร์มินัลใหม่: python --version

Linux (Ubuntu/Debian):

Terminal window
sudo apt update && sudo apt install python3 python3-pip python3-venv
python3 --version

ใน Node คำสั่ง npm install สร้าง node_modules/ ไว้ในโปรเจกต์ ทำให้แต่ละโปรเจกต์มี dependency ชุดของตัวเอง ฝั่ง Python ตัวที่ทำหน้าที่เดียวกันคือ virtual environment (venv) ที่เป็นไดเรกทอรีแยกที่เก็บทั้ง Python interpreter และ package ไว้ในนั้น

ถ้าไม่ใช้ venv คำสั่ง pip install จะลง package ระดับ global แล้วโปรเจกต์ต่าง ๆ จะชนกันเอง ดังนั้นใช้ venv เสมอ

TypeScript
# Node: project isolation is automatic
mkdir my-project && cd my-project
npm init -y
npm install express # goes into ./node_modules
# no extra setup needed
Python
# Python: you must explicitly create isolation
mkdir my-project && cd my-project
python3 -m venv venv # creates ./venv directory
source venv/bin/activate # macOS/Linux
# venv\Scripts\activate # Windows PowerShell
pip install fastapi # installs into ./venv, not globally
python3 script.py

พอรัน source venv/bin/activate แล้ว prompt จะขึ้น (venv) ให้เห็น จากจุดนี้ python และ pip จะชี้ไปที่ venv ของโปรเจกต์ ถ้าจะออกก็สั่ง deactivate

TypeScript
# TypeScript
npx ts-node src/index.ts # run directly
npx tsc && node dist/index.js # compile then run
npm run dev # package.json script
Python
# Python
python3 src/main.py # run directly, no compile
python3 -m module_name # run a module as a script
python3 -i src/main.py # run then drop into REPL
TypeScript
# Node
npm install express # install + save to package.json
npm install --save-dev jest # devDependency
npm install # install from package.json
npm ci # clean install from package-lock.json
Python
# Python (classic workflow)
pip install fastapi # installs but does NOT save
pip freeze > requirements.txt # snapshot current env
pip install -r requirements.txt # install from snapshot
# Modern workflow with pyproject.toml
pip install . # install project deps from pyproject.toml

นี่คือลำดับขั้นตอน “เริ่มโปรเจกต์ Python ใหม่” แบบเต็ม วางเทียบกับสิ่งที่คุณทำตอนเริ่มโปรเจกต์ Node:

TypeScript
# Node project setup
mkdir api && cd api
npm init -y
npm install express typescript ts-node @types/node
npx tsc --init
# edit tsconfig.json...
npm run dev
Python
# Python project setup
mkdir api && cd api
python3 -m venv venv
source venv/bin/activate # activate venv
pip install fastapi uvicorn
# Run the app
uvicorn main:app --reload
# Capture deps for teammates
pip freeze > requirements.txt
อะไรคือตัวเทียบเคียง `node_modules/` ในฝั่ง Python?
หลัง `pip install fastapi` ต้องทำอย่างไรให้เพื่อนร่วมทีม reproduce dependency ตามได้?
`source venv/bin/activate` ทำอะไร?