【Python】使用Rust打造的超速Python套件管理工具uv

更新於 發佈於 閱讀時間約 4 分鐘

前情提要

【Python】安裝、快速開始(2024-04更新)

【Python】使用虛擬環境pipenv

以前寫過從官方網站上下載安裝python的文章,也嘗試過使用當時相對較新的管理工具pipenv。而現在,一切都不同了,使用rust撰寫的套件管理工具uv,執行速度、整合專案開發流程等都是目前首選,終於是有了套完整的方案。

安裝uv

可以參考上方的安裝說明,根據電腦作業系統、架構,依喜歡的方式進行安裝。我本機使用的是windows,故以此進行示範。

透過pip

pip install uv

但這麼一來,uv的版本將會交由pip進行管理,而uv是可以管理不同虛擬環境內使用的python版本,可能會產生意外的相容性問題,因此不建議採用。

下載release版本zip

對下指令不熟,習慣透過介面下載實際檔案,可以到github上下載對應的zip檔,解壓縮後將uv.exe加入到path內,環境變數設定完成即可。

透過指令安裝

打開powershell,貼上指令執行,即完成安裝及環境變數的設置

powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"


指令做的事情會忽略一些安全性政策,從官網執行腳本下載對應本機適合的uv版本,可以看到就是3個執行檔,放入使用者目錄下,腳本幫你建立好的.local資料夾內,並且處理好環境變數。

  • uv.exe
  • uvx.exe
  • uvw.exe
raw-image

下方提示要新開一個終端才會生效,或者執行下方的指令,在這個terminal session下指定環境變數設置。

安裝python

目前我的本機是沒有python的狀態,開啟新的終端執行指令,確認有哪些python可以使用。

預設安裝最新的版本(官網最新版為3.13.5),也可以指定安裝特定版本的python。

raw-image

可以看到完成速度極快,且環境變數也跟著處理了,想確認的話可以下指令

python3.13 --version


建立新專案

建立新的資料夾並切換到裡面,執行指令後便會長出初始的專案架構

raw-image


專案幫你使用git控管,也加入了需排除的項目到.gitignore、空白的README.md,並且使用.toml檔案管理依賴,裡面紀錄專案相關資訊。

raw-image


實際執行一下當前程式

raw-image

在執行後會看到.envuv.lock長出來了,基本上不太需要手動處理這些內容,好奇展開來看,裡面是一大堆常見終端機的shell指令,配合虛擬環境使用的內容。

添加/移除第三方套件依賴

假如我們要使用requests,也是交由uv下指令進行管理,同時會更新pyproject.toml內的版本資訊。

raw-image


其中重要的是,第三方套件所依賴的子項目,也會被uv一起追蹤,再刪除的時候一併處理掉,終於不會再有刪不乾淨的問題了。

raw-image


以上是建立新專案的使用示範,自己在公司內使用幾個月下來,到目前還沒遇到特別奇怪的問題,只能說終於有個較完善的機制,已經回不去以前的使用方式了。


留言
avatar-img
留言分享你的想法!
avatar-img
Err500
12會員
78內容數
遇到的坑、解過的題、新知識的探索、舊時代的遺毒!? 工作後我發現,文件更新往往跟不上新需求的更迭,犯錯的歷史總是不斷重演。因此,我改變了方式,蒐集從程式上、系統上的每一次異常處理過程,好讓再次遇到相同的問題時能快速應變。此專題就是我的錯題本,期待日後不管在工作上或交流上遇到難題,都能輕鬆地應答:有什麼難的,我都踩過。
Err500的其他內容
2022/06/06
初玩python時常用pip安裝各式各樣的套件下來,而這些套件在本機中是以全域的方式安裝。假設今天需要接手別人的專案,所用的套件版本不相容,對於這些仰賴的套件(依賴dependencies)進行管理跟切分就成了一個課題。
Thumbnail
2022/06/06
初玩python時常用pip安裝各式各樣的套件下來,而這些套件在本機中是以全域的方式安裝。假設今天需要接手別人的專案,所用的套件版本不相容,對於這些仰賴的套件(依賴dependencies)進行管理跟切分就成了一個課題。
Thumbnail
2021/10/10
翻閱了去年面試時候的題目,想想現在自己會用什麼方式重新完成這個題目,也正好最近在看python的typing模組及其他使用,使用物件導向的方式改寫了程式碼。
Thumbnail
2021/10/10
翻閱了去年面試時候的題目,想想現在自己會用什麼方式重新完成這個題目,也正好最近在看python的typing模組及其他使用,使用物件導向的方式改寫了程式碼。
Thumbnail
2020/06/07
Youtube上逛著逛著看到techwithtim的線上教學,這是一個pygame的模組練習,只\是我想了解深一點的是物件導向的寫法應用。影片大約兩小時,實際邊動手coding,一邊看著影片的講解,結果花在這上面的時間遠遠超過我的預期。
Thumbnail
2020/06/07
Youtube上逛著逛著看到techwithtim的線上教學,這是一個pygame的模組練習,只\是我想了解深一點的是物件導向的寫法應用。影片大約兩小時,實際邊動手coding,一邊看著影片的講解,結果花在這上面的時間遠遠超過我的預期。
Thumbnail
看更多
你可能也想看
Thumbnail
2025 vocus 推出最受矚目的活動之一——《開箱你的美好生活》,我們跟著創作者一起「開箱」各種故事、景點、餐廳、超值好物⋯⋯甚至那些讓人會心一笑的生活小廢物;這次活動不僅送出了許多獎勵,也反映了「內容有價」——創作不只是分享、紀錄,也能用各種不同形式變現、帶來實際收入。
Thumbnail
2025 vocus 推出最受矚目的活動之一——《開箱你的美好生活》,我們跟著創作者一起「開箱」各種故事、景點、餐廳、超值好物⋯⋯甚至那些讓人會心一笑的生活小廢物;這次活動不僅送出了許多獎勵,也反映了「內容有價」——創作不只是分享、紀錄,也能用各種不同形式變現、帶來實際收入。
Thumbnail
嗨!歡迎來到 vocus vocus 方格子是台灣最大的內容創作與知識變現平台,並且計畫持續拓展東南亞等等國際市場。我們致力於打造讓創作者能夠自由發表、累積影響力並獲得實質收益的創作生態圈!「創作至上」是我們的核心價值,我們致力於透過平台功能與服務,賦予創作者更多的可能。 vocus 平台匯聚了
Thumbnail
嗨!歡迎來到 vocus vocus 方格子是台灣最大的內容創作與知識變現平台,並且計畫持續拓展東南亞等等國際市場。我們致力於打造讓創作者能夠自由發表、累積影響力並獲得實質收益的創作生態圈!「創作至上」是我們的核心價值,我們致力於透過平台功能與服務,賦予創作者更多的可能。 vocus 平台匯聚了
Thumbnail
在離線環境需要安裝Python套件時就相當的麻煩,需要先下載好套件包,在打指令安裝,若套件數量一多時就會相當麻煩。 本文將介紹如何利用兩行指令快速的安裝整個資料夾的套件。
Thumbnail
在離線環境需要安裝Python套件時就相當的麻煩,需要先下載好套件包,在打指令安裝,若套件數量一多時就會相當麻煩。 本文將介紹如何利用兩行指令快速的安裝整個資料夾的套件。
Thumbnail
介紹如何用assign函數在Python中建立新欄位
Thumbnail
介紹如何用assign函數在Python中建立新欄位
Thumbnail
什麼是Python python是電腦程式語言的一種,如同python官方網站上的介紹 "Python是一種程式語,可讓你更快速地工作並更有效的整合系統"。簡單地說,就是你可用python這個程式語言去告訴電腦你想要作什麼,讓電腦來幫你完成你要作的事情。
Thumbnail
什麼是Python python是電腦程式語言的一種,如同python官方網站上的介紹 "Python是一種程式語,可讓你更快速地工作並更有效的整合系統"。簡單地說,就是你可用python這個程式語言去告訴電腦你想要作什麼,讓電腦來幫你完成你要作的事情。
Thumbnail
Python的模組和庫是可重用的程式碼塊,可透過import語句引入。特定部分可以透過from和import引入,並可使用as指定別名。第三方模組可透過pip工具安裝並在程式碼中使用。此外,也可以創建自定義模組並在其他Python文件中引用。
Thumbnail
Python的模組和庫是可重用的程式碼塊,可透過import語句引入。特定部分可以透過from和import引入,並可使用as指定別名。第三方模組可透過pip工具安裝並在程式碼中使用。此外,也可以創建自定義模組並在其他Python文件中引用。
Thumbnail
Python是一種易學且功能強大的程式語言,具有直譯、動態語法等特性,並擁有豐富的標準庫。它在各領域如Web開發、數據科學和人工智慧等得到廣泛應用,並被許多大公司如Google和Facebook等使用。Python還有強大的框架、豐富的交互機能、和龐大的社區。
Thumbnail
Python是一種易學且功能強大的程式語言,具有直譯、動態語法等特性,並擁有豐富的標準庫。它在各領域如Web開發、數據科學和人工智慧等得到廣泛應用,並被許多大公司如Google和Facebook等使用。Python還有強大的框架、豐富的交互機能、和龐大的社區。
Thumbnail
在Python中,import是一個關鍵字,用於將其他模組或套件中的程式碼引入到當前的程式中以供使用。 這個關鍵字允許你在你的程式中使用其他地方定義的變數、函式和類等。 當你使用import時,Python會搜索指定模組或套件的位置,並將其中的程式碼載入到你的程式中,這樣你就可以在程式中使用它們
Thumbnail
在Python中,import是一個關鍵字,用於將其他模組或套件中的程式碼引入到當前的程式中以供使用。 這個關鍵字允許你在你的程式中使用其他地方定義的變數、函式和類等。 當你使用import時,Python會搜索指定模組或套件的位置,並將其中的程式碼載入到你的程式中,這樣你就可以在程式中使用它們
Thumbnail
情況描述 我們在「【🔒 Python 先修班】教你親手打包專屬套件庫的手作課(pip install…)」有提到如何打包Python讓自己的程式變成套件, 讓其他人可以用pip install的方式進行安裝,😲 But… 我們實際上打包後, 發現到引用的檔案都有被打包進去,但目錄卻未被打包
Thumbnail
情況描述 我們在「【🔒 Python 先修班】教你親手打包專屬套件庫的手作課(pip install…)」有提到如何打包Python讓自己的程式變成套件, 讓其他人可以用pip install的方式進行安裝,😲 But… 我們實際上打包後, 發現到引用的檔案都有被打包進去,但目錄卻未被打包
Thumbnail
今天來介紹python的函式 函式在python中是非常重要的一環,因為到了後期,程式會越來越複雜。 而函式可以想成是容易管理的小程式,當我們需要使用時,只需呼叫即可。
Thumbnail
今天來介紹python的函式 函式在python中是非常重要的一環,因為到了後期,程式會越來越複雜。 而函式可以想成是容易管理的小程式,當我們需要使用時,只需呼叫即可。
Thumbnail
在著手開發一套程式時,會讓人覺得煩躁的考量點,其中一個讓人頭痛的,應該就是 UI 的設計跟串接了吧,究竟有沒有一個套件,能讓開發者能夠以一套語言,就能打遍天下呢?
Thumbnail
在著手開發一套程式時,會讓人覺得煩躁的考量點,其中一個讓人頭痛的,應該就是 UI 的設計跟串接了吧,究竟有沒有一個套件,能讓開發者能夠以一套語言,就能打遍天下呢?
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News