python依賴管理工具UV的安裝和使用教程
前言
注:dify的插件是依賴uv的,對于dify1.0.0以及后續(xù)的版本,需要安裝uv。
一、命令安裝uv
官網(wǎng)安裝步驟(https://docs.astral.sh/uv/getting-started/installation/)。運(yùn)行以下其中一個(gè)命令安裝uv,安裝會受網(wǎng)速影響。
curl -LsSf https://astral.sh/uv/install.sh | sh wget -qO- https://astral.sh/uv/install.sh | sh curl -LsSf https://astral.sh/uv/0.7.12/install.sh | sh # 安裝指定版本的uv
以下是獨(dú)立安裝拆分步驟
# 1. 先下載腳本并檢查 curl -LO https://astral.sh/uv/0.7.12/install.sh # 2. 檢查腳本內(nèi)容 cat install.sh # 或使用文本編輯器查看 # 3. 確認(rèn)安全后執(zhí)行 sh install.sh
二、手動編譯安裝
2.1在archlinux安裝uv的依賴工具
sudo pacman -Syu base-devel git python python-pip rust base-devel:提供 gcc、make 等編譯工具。 git:用于克隆源碼。 python 和 python-pip:uv 是 Python 工具,需要 Python 環(huán)境。 rust:uv 是用 Rust 編寫的,需要 Rust 工具鏈。
2.2從Github網(wǎng)站獲取源碼
uv項(xiàng)目的Github網(wǎng)址https://github.com/astral-sh/uv/tree/0.7.12。直接下載zip源碼,然后解壓復(fù)制到archlinux中/root目錄下?;蛘哌\(yùn)行以下命令下載:
git clone https://github.com/astral-sh/uv.git cd uv git checkout tags/0.7.12 # 該步可選,切換到指定版本(如 0.7.12)
2.3 編譯安裝
- 更換 Cargo 鏡像源(推薦)
編輯 Cargo 配置文件 ~/.cargo/config.toml
,添加國內(nèi)鏡像源(如清華源或中科大源):
[source.crates-io] replace-with = 'tuna' # 或 'ustc' # 清華大學(xué)鏡像源 [source.tuna] registry = "https://mirrors.tuna.tsinghua.edu.cn/git/crates.io-index.git" # 或中科大鏡像源 [source.ustc] registry = "https://mirrors.ustc.edu.cn/crates.io-index/"
? 生效方式:
? 保存文件后,重新運(yùn)行 cargo build --release
。
- 調(diào)整超時(shí)設(shè)置(臨時(shí)緩解)
在 ~/.cargo/config.toml
中增加超時(shí)時(shí)間(不推薦長期使用):
[net] git-fetch-with-cli = true # 使用系統(tǒng) git 代替內(nèi)置 git timeout = 120 # 超時(shí)時(shí)間設(shè)為 120 秒
使用 cargo 構(gòu)建
cargo build --release
編譯完成后,安裝到指定目錄
mkdir -p ~/.local/bin cp target/release/uv ~/.local/bin/ cp target/release/uv /root/uv/uv-0.7.12 echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.profile echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bash_profile exec "$SHELL" # 重啟shell,使設(shè)置的環(huán)境變量生效
2.4 驗(yàn)證安裝
uv --version
應(yīng)輸出類似:
uv 0.7.12
2.5刪除target
如果已經(jīng)確認(rèn)uv編譯完成,可以刪除target文件夾來釋放存儲空間
進(jìn)入uv所在目錄,查看uv依賴項(xiàng) ldd ./uv rm -r /root/uv/uv-0.7.12/target 盡量保留.so文件
2.6使用示例
$ uv init example Initialized project `example` at `/home/user/example` $ cd example $ uv add ruff Creating virtual environment at: .venv Resolved 2 packages in 170ms Built example @ file:///home/user/example Prepared 2 packages in 627ms Installed 2 packages in 1ms + example==0.1.0 (from file:///home/user/example) + ruff==0.5.0 $ uv run ruff check All checks passed! $ uv lock Resolved 2 packages in 0.33ms $ uv sync Resolved 2 packages in 0.70ms Audited 1 package in 0.02ms
三、更改國內(nèi)下載鏡像
更改國內(nèi)鏡像地址,有以下兩種方法,選擇其中一種就行。推薦設(shè)置全局配置文件uv.toml
。
1.編輯uv配置文件
1.1全局配置文件(推薦)
在/etc/uv/目錄下設(shè)置uv.toml
配置文件。以下設(shè)置只能對uv安裝python工具包起作用,即uv下載pypi工具時(shí),會默認(rèn)從設(shè)置的網(wǎng)站下載。但是對于python解釋器的下載,需要另外設(shè)置,具體設(shè)置就是創(chuàng)建軟鏈接,見為uv設(shè)置python解釋器。
mkdir /etc/uv echo ' [[index]] url = "https://mirrors.aliyun.com/pypi/simple/" default = true' > /etc/uv/uv.toml
1.2具體項(xiàng)目的配置文件
在uv目錄下設(shè)置pyproject.toml
配置文件。
vim pyproject.toml 增加以下內(nèi)容 [[tool.uv.index]] url = "https://mirrors.aliyun.com/pypi/simple/" [[tool.uv.index]] url = "https://pypi.tuna.tsinghua.edu.cn/simple" default = true [tool.uv.pip] index-url = "https://pypi.tuna.tsinghua.edu.cn/simple"
2.直接設(shè)置環(huán)境參數(shù)
有關(guān)uv的環(huán)境參數(shù)名稱見官網(wǎng)https://docs.astral.sh/uv/reference/environment/#uv_break_system_packages
echo 'export UV_DEFAULT_INDEX="https://mirrors.aliyun.com/pypi/simple/"' >> ~/.bashrc echo 'export UV_DEFAULT_INDEX="https://mirrors.aliyun.com/pypi/simple/"' >> ~/.profile echo 'export UV_DEFAULT_INDEX="https://mirrors.aliyun.com/pypi/simple/"' >> ~/.bash_profile exec "$SHELL" # 重啟shell,使設(shè)置的環(huán)境變量生效
四、為uv設(shè)置單獨(dú)的虛擬環(huán)境
1.為uv設(shè)置python解釋器
將pyenv安裝的python作為uv的python解釋器,創(chuàng)建軟連接。uv會優(yōu)先在環(huán)境變量中查找已經(jīng)安裝的python解釋器,查找不到,才會從默認(rèn)的網(wǎng)站下載。其默認(rèn)的網(wǎng)站一般是國外網(wǎng)站,會因?yàn)榫W(wǎng)速問題導(dǎo)致uv下載python解釋器失敗。
ln -s "$HOME/.pyenv/versions/3.12.6/bin/python" /usr/local/bin/python3.12
2.創(chuàng)建獨(dú)立的虛擬環(huán)境
使用 uv 直接創(chuàng)建并激活虛擬環(huán)境。**使用uv venv
創(chuàng)建虛擬環(huán)境,會自動下載對應(yīng)的python
解釋器到以下路徑/root/.local/share/uv/python/
下。**并且在/opt/dify-python/lib/uv-venv/bin
目錄中創(chuàng)建軟鏈接指向自動下載的python解釋器。
uv venv /path/to/uv-venv source /path/to/uv-venv/bin/activate 示例: uv venv /opt/dify-python/lib/uv-venv source /opt/dify-python/lib/uv-venv/bin/activate
3.退出虛擬環(huán)境
deactivate
4.在獨(dú)立環(huán)境中使用 uv
激活虛擬環(huán)境后,所有通過 uv pip install 安裝的包將僅存在于(每個(gè)項(xiàng)目的) ./venv/lib/pythonX.Y/site-packages
。安裝包(僅影響當(dāng)前 uv-venv 環(huán)境)
uv pip install numpy openai 或者 uv pip install -r requirements.txt # 安裝項(xiàng)目依賴
5.與 poetry 環(huán)境完全隔離
poetry 環(huán)境:繼續(xù)在項(xiàng)目目錄中通過 poetry install 管理主依賴。
uv 環(huán)境:僅在手動激活 uv-venv 后操作,不影響 poetry。
驗(yàn)證隔離性:
檢查當(dāng)前環(huán)境的 Python 路徑 which python 應(yīng)輸出 uv-venv 的路徑,如:/path/to/uv-venv/bin/python
對比兩個(gè)環(huán)境的包列表
在 uv-venv 中: uv pip list -v # 列出所有已安裝的包及其版本 在 poetry 環(huán)境中: poetry run pip list
總結(jié)
到此這篇關(guān)于python依賴管理工具UV的安裝和使用的文章就介紹到這了,更多相關(guān)python依賴管理工具UV安裝內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python實(shí)現(xiàn)softmax反向傳播的示例代碼
這篇文章主要為大家詳細(xì)介紹了Python實(shí)現(xiàn)softmax反向傳播的相關(guān)資料,文中的示例代碼講解詳細(xì),具有一定的參考價(jià)值,感興趣的可以了解一下2023-04-042021年的Python 時(shí)間軸和即將推出的功能詳解
這篇文章主要介紹了2021年的Python 時(shí)間軸和即將推出的功能,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-07-07pycharm如何debug for循環(huán)里面的錯(cuò)誤值(推薦)
一般debug時(shí),在for循環(huán)里面的話,需要自己一步一步點(diǎn),如果循環(huán)幾百次那種就比較麻煩,此時(shí)可以采用try except的方式來解決,這篇文章主要介紹了pycharm如何debug for循環(huán)里面的錯(cuò)誤值,需要的朋友可以參考下2024-07-07pandas實(shí)現(xiàn)數(shù)據(jù)合并的示例代碼
本文主要介紹了pandas實(shí)現(xiàn)數(shù)據(jù)合并的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-05-05Python實(shí)現(xiàn)周期性抓取網(wǎng)頁內(nèi)容的方法
這篇文章主要介紹了Python實(shí)現(xiàn)周期性抓取網(wǎng)頁內(nèi)容的方法,涉及Python時(shí)間函數(shù)及正則匹配的相關(guān)操作技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-11-11Python圖像運(yùn)算之圖像掩膜直方圖和HS直方圖詳解
這篇文章將為大家詳細(xì)講解圖像掩膜直方圖和HS直方圖,并分享一個(gè)通過直方圖判斷白天與黑夜的案例。文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下2022-08-08Python深度學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)基本原理
人工神經(jīng)網(wǎng)絡(luò)(Artificial Neural Networks,簡寫為ANNs)也簡稱為神經(jīng)網(wǎng)絡(luò)(NNs)或稱作連接模型(Connection Model),它是一種模仿動物神經(jīng)網(wǎng)絡(luò)行為特征,進(jìn)行分布式并行信息處理的算法數(shù)學(xué)模型2021-10-10python+opencv+selenium自動化登錄郵箱并解決滑動驗(yàn)證的問題
本文主要講解基于python+opencv+selenium自動化登錄郵箱并解決滑動驗(yàn)證的問題,在這大家需要注意頁面元素定位及文本框和驗(yàn)證碼的frame嵌套問題,感興趣的朋友一起看看吧2021-07-07使用Python實(shí)現(xiàn)Excel表格轉(zhuǎn)圖片
在數(shù)據(jù)處理與信息分享過程中,Excel表格作為一種強(qiáng)大的數(shù)據(jù)管理工具被廣泛應(yīng)用,這篇文章主要為大家詳細(xì)介紹了如何使用Python將Excel表格轉(zhuǎn)換為圖片,需要的可以參考下2024-04-04