最終更新 6 months ago

透過 UV 工具創建和管理 Python 虛擬環境,輕鬆安裝套件、更新依賴,並執行腳本。

timmy revised this gist 6 months ago. Go to revision

1 file changed, 4 insertions

install_and_manage_uv_tool.sh

@@ -7,6 +7,10 @@ brew install uv
7 7 # 創一個新的虛擬環境,隔離專案依賴,免得搞亂
8 8 uv venv
9 9
10 + # 創一個新的虛擬環境,隔離專案依賴,免得搞亂
11 + # 用 --python 指定特定 Python 版本,例如 3.11
12 + uv venv --python 3.11
13 +
10 14 # 用 uv 的 pip 安裝 requests 套件,抓資料超好用
11 15 uv pip install requests
12 16

timmy revised this gist 6 months ago. Go to revision

2 files changed, 34 insertions, 43 deletions

install_and_manage_uv_tool.sh

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

virtual_environment_aliases.sh

@@ -1,9 +1,9 @@
1 - # 定義一個名為 venvon 的別名,用於啟動虛擬環境
2 - # 如果 .venv 目錄存在,則啟動該虛擬環境
3 - # 如果 .venv 目錄不存在,則輸出 ".venv 不存在"
1 + # 定義一個叫 venvon 的別名,用來啟動虛擬環境
2 + # 如果 .venv 資料夾存在,就直接 source 啟動它,超方便
3 + # 如果沒找到 .venv,就跟你說 ".venv 不存在",免得你猜半天
4 4 alias venvon='[ -d .venv ] && source .venv/bin/activate || echo ".venv 不存在"'
5 5
6 - # 定義一個名為 venvoff 的別名,用於關閉虛擬環境
7 - # 如果 deactivate 命令存在,則執行 deactivate 來關閉虛擬環境
8 - # 如果 deactivate 命令不存在,則輸出 "目前沒有虛擬環境可關閉"
6 + # 定義一個叫 venvoff 的別名,用來關閉虛擬環境
7 + # 如果 deactivate 指令可以用,就直接關閉環境,乾淨俐落
8 + # 如果沒啟動過環境,就跟你說 "目前沒有虛擬環境可關閉",不會亂搞
9 9 alias venvoff='type deactivate &>/dev/null && deactivate || echo "目前沒有虛擬環境可關閉"'

timmy revised this gist 7 months ago. Go to revision

No changes

timmy revised this gist 7 months ago. Go to revision

1 file changed, 2 insertions, 2 deletions

install_and_manage_uv_tool.sh

@@ -32,7 +32,7 @@ uv pip compile requirements.in
32 32
33 33
34 34 # 建立一個新資料夾 myproject 並切換到該資料夾
35 - mkdir myproject && cd myproject
35 + mkdir myproject && cd myproject || exit
36 36
37 37 # 使用 uv 建立虛擬環境
38 38 uv venv
@@ -55,7 +55,7 @@ uv self update
55 55 uv init example
56 56
57 57 # 進入範例專案資料夾
58 - cd example
58 + cd example || exit
59 59
60 60 # 安裝 ruff(Python 程式碼靜態分析工具)
61 61 uv add ruff

timmy revised this gist 7 months ago. Go to revision

1 file changed, 40 insertions, 5 deletions

install_and_manage_uv_tool.sh

@@ -31,27 +31,62 @@ uv python -c "import requests; print(requests.__version__)"
31 31 uv pip compile requirements.in
32 32
33 33
34 -
35 -
34 + # 建立一個新資料夾 myproject 並切換到該資料夾
36 35 mkdir myproject && cd myproject
36 +
37 + # 使用 uv 建立虛擬環境
37 38 uv venv
39 +
40 + # 啟動虛擬環境
38 41 source .venv/bin/activate
42 +
43 + # 安裝 numpy 和 pandas 套件
39 44 uv pip install numpy pandas
45 +
46 + # 將目前安裝的套件及版本寫入 requirements.txt
40 47 uv pip freeze > requirements.txt
41 48
42 49
43 50
51 + # 更新 uv 自身
44 52 uv self update
53 +
54 + # 初始化一個範例 uv 專案
45 55 uv init example
56 +
57 + # 進入範例專案資料夾
46 58 cd example
59 +
60 + # 安裝 ruff(Python 程式碼靜態分析工具)
47 61 uv add ruff
48 - uv lock # 重新解析所有依賴並更新 lockfile
49 - uv sync # 安裝 lockfile 上的套件,並執行安全稽核
50 62
63 + # 重新解析所有依賴並更新 lockfile(鎖定依賴版本)
64 + uv lock
65 +
66 + # 根據 lockfile 安裝所有套件,並執行安全性稽核
67 + uv sync
68 +
69 +
70 +
71 + # 啟動互動式 Python 介面(使用 uv)
51 72 uv run python
73 +
74 + # 安裝特定版本的 Python:3.10、3.11、3.12
52 75 uv python install 3.10 3.11 3.12
53 76
77 +
78 +
79 + # 建立一個簡單的 Python 檔案,並請求一個網頁
54 80 echo 'import requests; print(requests.get("https://astral.sh"))' > example.py
81 +
82 + # 對 example.py 使用 uv 安裝所需的 requests 套件
55 83 uv add --script example.py requests
56 84
57 - uvx pycowsay 'hello world!'
85 +
86 +
87 + # 執行 pycowsay 指令顯示 "hello world!"(以小牛圖示顯示訊息)
88 + uvx pycowsay 'hello world!'
89 +
90 +
91 + # 使用 Docker 執行 uv CLI 並顯示說明文件
92 + docker run --rm -it ghcr.io/astral-sh/uv:debian uv --help

timmy revised this gist 7 months ago. Go to revision

1 file changed, 26 insertions

install_and_manage_uv_tool.sh

@@ -29,3 +29,29 @@ uv python -c "import requests; print(requests.__version__)"
29 29
30 30 # 從 requirements.in 檔案生成 requirements.txt,通常用於管理依賴項
31 31 uv pip compile requirements.in
32 +
33 +
34 +
35 +
36 + mkdir myproject && cd myproject
37 + uv venv
38 + source .venv/bin/activate
39 + uv pip install numpy pandas
40 + uv pip freeze > requirements.txt
41 +
42 +
43 +
44 + uv self update
45 + uv init example
46 + cd example
47 + uv add ruff
48 + uv lock # 重新解析所有依賴並更新 lockfile
49 + uv sync # 安裝 lockfile 上的套件,並執行安全稽核
50 +
51 + uv run python
52 + uv python install 3.10 3.11 3.12
53 +
54 + echo 'import requests; print(requests.get("https://astral.sh"))' > example.py
55 + uv add --script example.py requests
56 +
57 + uvx pycowsay 'hello world!'

timmy revised this gist 7 months ago. Go to revision

1 file changed, 2 insertions

install_and_manage_uv_tool.sh

@@ -1,6 +1,8 @@
1 1 # 從 astral.sh 下載並執行安裝腳本,來安裝 uv 工具
2 2 curl -Ls https://astral.sh/uv/install.sh | sh
3 3
4 + brew install uv
5 +
4 6 # 創建一個新的虛擬環境
5 7 uv venv
6 8

timmy revised this gist 7 months ago. Go to revision

2 files changed, 9 insertions, 2 deletions

activate_python_venv_alias.sh (file deleted)

@@ -1,2 +0,0 @@
1 - # 啟用 Python 虛擬環境
2 - alias venvon='source .venv/bin/activate'

virtual_environment_aliases.sh(file created)

@@ -0,0 +1,9 @@
1 + # 定義一個名為 venvon 的別名,用於啟動虛擬環境
2 + # 如果 .venv 目錄存在,則啟動該虛擬環境
3 + # 如果 .venv 目錄不存在,則輸出 ".venv 不存在"
4 + alias venvon='[ -d .venv ] && source .venv/bin/activate || echo ".venv 不存在"'
5 +
6 + # 定義一個名為 venvoff 的別名,用於關閉虛擬環境
7 + # 如果 deactivate 命令存在,則執行 deactivate 來關閉虛擬環境
8 + # 如果 deactivate 命令不存在,則輸出 "目前沒有虛擬環境可關閉"
9 + alias venvoff='type deactivate &>/dev/null && deactivate || echo "目前沒有虛擬環境可關閉"'

timmy revised this gist 7 months ago. Go to revision

1 file changed, 2 insertions

activate_python_venv_alias.sh(file created)

@@ -0,0 +1,2 @@
1 + # 啟用 Python 虛擬環境
2 + alias venvon='source .venv/bin/activate'

timmy revised this gist 7 months ago. Go to revision

1 file changed, 29 insertions

install_and_manage_uv_tool.sh(file created)

@@ -0,0 +1,29 @@
1 + # 從 astral.sh 下載並執行安裝腳本,來安裝 uv 工具
2 + curl -Ls https://astral.sh/uv/install.sh | sh
3 +
4 + # 創建一個新的虛擬環境
5 + uv venv
6 +
7 + # 使用 uv 的 pip 安裝 requests 套件
8 + uv pip install requests
9 +
10 + # 將當前安裝的套件及其版本輸出到 requirements.txt 檔案
11 + uv pip freeze > requirements.txt
12 +
13 + # 從 requirements.txt 檔案安裝所需的套件
14 + uv pip install -r requirements.txt
15 +
16 + # 創建一個新的虛擬環境並從 requirements.txt 安裝套件
17 + uv venv && uv pip install -r requirements.txt
18 +
19 + # 移除現有的虛擬環境
20 + uv venv --remove
21 +
22 + # 同步虛擬環境中的套件,確保它們符合 requirements.txt 中的指定
23 + uv pip sync
24 +
25 + # 使用 uv 執行 Python 程式碼,輸出 requests 套件的版本
26 + uv python -c "import requests; print(requests.__version__)"
27 +
28 + # 從 requirements.in 檔案生成 requirements.txt,通常用於管理依賴項
29 + uv pip compile requirements.in
Newer Older