2025年8月5日 星期二

Python 學習紀錄

-------------------------- Python 本身相關 -----------------------------------------------------

#Python 的安裝位置可以自行決定,通常預設在
C:\Users\<userName>\AppData\Local\Programs\Python\Python313

#在環境中安裝套件 (預設是全局安裝,如果虛擬環境被啟動就會安裝在虛擬環境)
pip install <package名>

# sys.path 是一個列表,Python 在查找 module 時會從這列表中去找。
# 當用 python ./xxx/yyy.py 時,./xxx 會被加到 sys.path 中。
# 當用 python -m xxx.yyy , . (執行命令時所在的路徑)會被加到 sys.path 中

# -m 參數,把 module 當 script 來執行,後面可接 module name,會把當下執行路徑加到 sys.path 中
#例如:當下在 D:\\my-python,然後要執行 D:\\my-python\\module\\module1.py,命令為
python -m module.module1 (或是 python -m module.module1.py)
#然後因為此時 D:\\my-python 會被加到 sys.path 的關係,在 module1.py 中,就可以直接以 D:\\my-python 為起始目錄來 import 其他 module 了

#為一個專案建立虛擬環境 (virtual environment),會建立一個<虛擬環境名稱>資料夾,其中包括虛擬環境要用的東西,
並且會把<虛擬環境名稱>的全域路徑加到 sys.path 變數中 (因為是全域路徑,所以我想專案移動檔案位置可能會有問題)
pyton -m venv <虛擬環境名稱>
#例:
python -m venv .venv

#啟動虛擬環境 (有些 IDE 可能可以自動識別 .venv,就不用特別下指令啟動虛擬環境)
source .venv/bin/activate

#輸出當前環境安裝 (全域或是虛擬環境中) 的所有套件及其版本到<requirements 套件 list file path>
pip freeze > <requirements 套件 list file path>
#例:
pip freeze > requirements.txt
#讀取<requirements 套件 list file path> 並在環境中安裝套件
pip install <requirements 套件 list file path>
#例:
pip install -r requirements.txt

#官方的套件依賴配置文件,可取代 requirements.txt
pyproject.toml

#依照 pyproject.toml 安裝套件依賴
#參數: -e: 不要把專案原碼放到 .venv/Lib/site-packages 資料夾中
pip install [-e] .

-------------------------- pipx 工具相關 -----------------------------------------------------
官網

pipx — Install and Run Python Applications in Isolated Environments

pipx 是一個可以安裝及管理 Python 工具的工具,它可將要安裝的 Python 工具安裝到不是全域路徑的位置,方便在不汙染全域環境下較好管理工具。

例如 tool_1 依賴 xxx_package v1 ,但 tool_2 依賴 xxx_package v2,如果都裝在全域下可能就會有衝突問題。
工具安裝位置會像這樣:
不安裝到
C:\Users\<userName>\AppData\Local\Programs\Python\Python313\Lib
改安裝到
C:\Users\<user name>\.local\bin

#安裝 pipx 工具
pip intall [--python <python versoin>] pipx

#用 pipx 安裝並管理其他工具
pipx intall <其他工具>
#例如安裝 uv
pipx intall uv

#例出安裝的所有工具(包括各個的 Python 版本)
pipx list

--------------------------- uv 工具相關 ----------------------------------------------------

官網

uv - An extremely fast Python package and project manager, written in Rust.

uv 是一個可以幫助我們管理專案的套件依賴的工具,隔離各專案避免套件依賴裝在全域造成互相衝突。

#安裝 uv 工具
pip intall uv

#例出管理的 Python
uv python list

#安裝移除特定版本的 Python
uv python install <版本號>
uv python uninstall <版本號>

#設定 uv 預設使用的 Python 版本
uv python pin <版本號>

#初始化專案資料夾
uv init

#建立並使用 venv 虛擬環境,等同 python -m venv .venv 加 source .venv/bin/activate
uv venv

#安裝套件,並修改 pyproject.toml
uv add <套件名>

#讀取 pyproject.toml、建立虛擬環境 (只有建立沒有啟動)、並安裝依賴
uv sync

#在虛擬環境上下文 (Context) 中執行 Python 檔 (啟動虛擬環境、執行 Python 檔、再退出虛擬環境)
uv run <要執行的 python 檔>

#要使用 -m 參數時,例如要執行 python -m xx.yy.zz.py 時可用
uv run python -m xx.yy.zz

uv build

--------------------------  -----------------------------------------------------



沒有留言 :

張貼留言