install_and_manage_uv_tool.sh
· 2.7 KiB · Bash
Originalformat
# 從 astral.sh 抓安裝腳本,直接裝 uv 工具,簡單又快速
curl -Ls https://astral.sh/uv/install.sh | sh
# 或者用 brew 安裝,Mac 用戶的最愛
brew install uv
# 創一個新的虛擬環境,隔離專案依賴,免得搞亂
uv venv
# 創一個新的虛擬環境,隔離專案依賴,免得搞亂
# 用 --python 指定特定 Python 版本,例如 3.11
uv venv --python 3.11
# 用 uv 的 pip 安裝 requests 套件,抓資料超好用
uv pip install requests
# 把目前裝的套件跟版本通通寫到 requirements.txt,備份一下
uv pip freeze > requirements.txt
# 從 requirements.txt 安裝套件,幫你一次搞定依賴
uv pip install -r requirements.txt
# 直接創虛擬環境再裝 requirements.txt 的套件,一氣呵成
uv venv && uv pip install -r requirements.txt
# 虛擬環境不要了?直接砍掉重練,沒問題
uv venv --remove
# 同步虛擬環境的套件,跟 requirements.txt 保持一致,免得出包
uv pip sync
# 用 uv 跑 Python 程式碼,秀一下 requests 的版本,確認有裝好
uv python -c "import requests; print(requests.__version__)"
# 從 requirements.in 生出 requirements.txt,管理依賴超方便
uv pip compile requirements.in
# 建一個新資料夾 myproject,直接切過去,準備好了
mkdir myproject && cd myproject || exit
# 用 uv 建虛擬環境,專案環境獨立起來,比較安全
uv venv
# 啟動虛擬環境,開始搞事情
source .venv/bin/activate
# 裝 numpy 跟 pandas,數據分析的好幫手
uv pip install numpy pandas
# 又來備份套件清單到 requirements.txt,免得忘記裝啥
uv pip freeze > requirements.txt
# 更新 uv 自己,保持最新版本,免得落後
uv self update
# 初始化一個範例專案 example,給新手練手用的
uv init example
# 進到範例專案資料夾,準備開工
cd example || exit
# 裝 ruff,Python 程式碼靜態分析工具,幫你檢查 code 品質
uv add ruff
# 重新解析依賴,更新 lockfile,鎖定版本,免得亂掉
uv lock
# 照 lockfile 安裝套件,還順便跑安全稽核,幫你顧好
uv sync
# 開個互動式 Python,用 uv 跑,測試一下環境
uv run python
# 裝特定版本的 Python,3.10、3.11、3.12 一次來,隨你挑
uv python install 3.10 3.11 3.12
# 寫個簡單 Python 檔案,抓 astral.sh 網站試試看
echo 'import requests; print(requests.get("https://astral.sh"))' > example.py
# 針對 example.py 裝 requests,uv 直接幫你處理依賴,挺貼心
uv add --script example.py requests
# 用 uvx 跑 pycowsay,秀個 "hello world!",小牛圖案超可愛
uvx pycowsay 'hello world!'
# 用 Docker 跑 uv CLI,看看說明文件,測試環境也 OK
docker run --rm -it ghcr.io/astral-sh/uv:debian uv --help
| 1 | # 從 astral.sh 抓安裝腳本,直接裝 uv 工具,簡單又快速 |
| 2 | curl -Ls https://astral.sh/uv/install.sh | sh |
| 3 | |
| 4 | # 或者用 brew 安裝,Mac 用戶的最愛 |
| 5 | brew install uv |
| 6 | |
| 7 | # 創一個新的虛擬環境,隔離專案依賴,免得搞亂 |
| 8 | uv venv |
| 9 | |
| 10 | # 創一個新的虛擬環境,隔離專案依賴,免得搞亂 |
| 11 | # 用 --python 指定特定 Python 版本,例如 3.11 |
| 12 | uv venv --python 3.11 |
| 13 | |
| 14 | # 用 uv 的 pip 安裝 requests 套件,抓資料超好用 |
| 15 | uv pip install requests |
| 16 | |
| 17 | # 把目前裝的套件跟版本通通寫到 requirements.txt,備份一下 |
| 18 | uv pip freeze > requirements.txt |
| 19 | |
| 20 | # 從 requirements.txt 安裝套件,幫你一次搞定依賴 |
| 21 | uv pip install -r requirements.txt |
| 22 | |
| 23 | # 直接創虛擬環境再裝 requirements.txt 的套件,一氣呵成 |
| 24 | uv venv && uv pip install -r requirements.txt |
| 25 | |
| 26 | # 虛擬環境不要了?直接砍掉重練,沒問題 |
| 27 | uv venv --remove |
| 28 | |
| 29 | # 同步虛擬環境的套件,跟 requirements.txt 保持一致,免得出包 |
| 30 | uv pip sync |
| 31 | |
| 32 | # 用 uv 跑 Python 程式碼,秀一下 requests 的版本,確認有裝好 |
| 33 | uv python -c "import requests; print(requests.__version__)" |
| 34 | |
| 35 | # 從 requirements.in 生出 requirements.txt,管理依賴超方便 |
| 36 | uv pip compile requirements.in |
| 37 | |
| 38 | # 建一個新資料夾 myproject,直接切過去,準備好了 |
| 39 | mkdir myproject && cd myproject || exit |
| 40 | |
| 41 | # 用 uv 建虛擬環境,專案環境獨立起來,比較安全 |
| 42 | uv venv |
| 43 | |
| 44 | # 啟動虛擬環境,開始搞事情 |
| 45 | source .venv/bin/activate |
| 46 | |
| 47 | # 裝 numpy 跟 pandas,數據分析的好幫手 |
| 48 | uv pip install numpy pandas |
| 49 | |
| 50 | # 又來備份套件清單到 requirements.txt,免得忘記裝啥 |
| 51 | uv pip freeze > requirements.txt |
| 52 | |
| 53 | # 更新 uv 自己,保持最新版本,免得落後 |
| 54 | uv self update |
| 55 | |
| 56 | # 初始化一個範例專案 example,給新手練手用的 |
| 57 | uv init example |
| 58 | |
| 59 | # 進到範例專案資料夾,準備開工 |
| 60 | cd example || exit |
| 61 | |
| 62 | # 裝 ruff,Python 程式碼靜態分析工具,幫你檢查 code 品質 |
| 63 | uv add ruff |
| 64 | |
| 65 | # 重新解析依賴,更新 lockfile,鎖定版本,免得亂掉 |
| 66 | uv lock |
| 67 | |
| 68 | # 照 lockfile 安裝套件,還順便跑安全稽核,幫你顧好 |
| 69 | uv sync |
| 70 | |
| 71 | # 開個互動式 Python,用 uv 跑,測試一下環境 |
| 72 | uv run python |
| 73 | |
| 74 | # 裝特定版本的 Python,3.10、3.11、3.12 一次來,隨你挑 |
| 75 | uv python install 3.10 3.11 3.12 |
| 76 | |
| 77 | # 寫個簡單 Python 檔案,抓 astral.sh 網站試試看 |
| 78 | echo 'import requests; print(requests.get("https://astral.sh"))' > example.py |
| 79 | |
| 80 | # 針對 example.py 裝 requests,uv 直接幫你處理依賴,挺貼心 |
| 81 | uv add --script example.py requests |
| 82 | |
| 83 | # 用 uvx 跑 pycowsay,秀個 "hello world!",小牛圖案超可愛 |
| 84 | uvx pycowsay 'hello world!' |
| 85 | |
| 86 | # 用 Docker 跑 uv CLI,看看說明文件,測試環境也 OK |
| 87 | docker run --rm -it ghcr.io/astral-sh/uv:debian uv --help |
| 88 |
virtual_environment_aliases.sh
· 629 B · Bash
Originalformat
# 定義一個叫 venvon 的別名,用來啟動虛擬環境
# 如果 .venv 資料夾存在,就直接 source 啟動它,超方便
# 如果沒找到 .venv,就跟你說 ".venv 不存在",免得你猜半天
alias venvon='[ -d .venv ] && source .venv/bin/activate || echo ".venv 不存在"'
# 定義一個叫 venvoff 的別名,用來關閉虛擬環境
# 如果 deactivate 指令可以用,就直接關閉環境,乾淨俐落
# 如果沒啟動過環境,就跟你說 "目前沒有虛擬環境可關閉",不會亂搞
alias venvoff='type deactivate &>/dev/null && deactivate || echo "目前沒有虛擬環境可關閉"'
| 1 | # 定義一個叫 venvon 的別名,用來啟動虛擬環境 |
| 2 | # 如果 .venv 資料夾存在,就直接 source 啟動它,超方便 |
| 3 | # 如果沒找到 .venv,就跟你說 ".venv 不存在",免得你猜半天 |
| 4 | alias venvon='[ -d .venv ] && source .venv/bin/activate || echo ".venv 不存在"' |
| 5 | |
| 6 | # 定義一個叫 venvoff 的別名,用來關閉虛擬環境 |
| 7 | # 如果 deactivate 指令可以用,就直接關閉環境,乾淨俐落 |
| 8 | # 如果沒啟動過環境,就跟你說 "目前沒有虛擬環境可關閉",不會亂搞 |
| 9 | alias venvoff='type deactivate &>/dev/null && deactivate || echo "目前沒有虛擬環境可關閉"' |
| 10 |