【工具類】Linux 環境利用 uv 安裝多版本 python

文章目錄

  • 前置工作
    • 環境說明
      • 如果kali無法訪問網絡
    • pypi 換源
    • 安裝 uv
    • uv 寫入環境變量
      • 臨時寫入
      • 永久寫入
    • 無法打開 github 解決方案(注意此方法可能也會失效)
  • 安裝多版本 python
    • 查看已安裝的python
    • uv python install
      • 到 uv 的 github 主頁,找安裝文件
    • 下載到本地準備安裝
    • 設置環境變量并安裝
    • 驗證安裝結果

前置工作

環境說明

虛擬機:virtualbox
操作系統:kali linux

virtualbox官網地址:https://www.virtualbox.org/
kali linux 中科大鏡像:https://mirrors.ustc.edu.cn/kali-images/kali-2025.2/kali-linux-2025.2-virtualbox-amd64.7z

如果kali無法訪問網絡

啟動前請添加一塊網卡
在這里插入圖片描述

pypi 換源

pip config set global.index-url https://mirrors.ustc.edu.cn/pypi/simple

安裝 uv

pip install uv

安裝后會無法找到uvbin文件,因為二進制文件沒有寫入環境變量,寫入后即可解決。

┌──(kali?kali)-[~]
└─$ pip install uv
Defaulting to user installation because normal site-packages is not writeable
Looking in indexes: https://mirrors.ustc.edu.cn/pypi/simple
Collecting uvDownloading https://mirrors.ustc.edu.cn/pypi/packages/5e/62/0d1ba1c666c5492d3716d8d3fba425f65ed2acc6707544c3cbbd381f6cbe/uv-0.8.3-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (18.7 MB)━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 18.7/18.7 MB 9.3 MB/s eta 0:00:00
Installing collected packages: uv
Successfully installed uv-0.8.3# 利用 which 查看發現沒有找到uv可執行文件
┌──(kali?kali)-[~]
└─$ which uv
uv not found# 在當前目錄查找下,發現在 下面第一個目錄里
┌──(kali?kali)-[~]
└─$ find . -name uv
./.local/bin/uv
./.local/lib/python3.11/site-packages/uv

uv 寫入環境變量

臨時寫入

export PATH="$HOME/.local/bin:$PATH"

┌──(kali?kali)-[~]
└─$ which uv
/home/kali/.local/bin/uv┌──(kali?kali)-[~]
└─$ uv --help | head -3
An extremely fast Python package manager.Usage: uv [OPTIONS] <COMMAND>

永久寫入

上面是臨時設置,如要持久化可把上面命令寫入~/.zshrc或者~/.bashrc等文件中
重新ssh到服務器發現uv已經可以直接which

PS C:\Users\Administrator> ssh kali@192.168.56.103
kali@192.168.56.103's password:
Linux kali 6.8.11-amd64 #1 SMP PREEMPT_DYNAMIC Kali 6.8.11-1kali2 (2024-05-30) x86_64The programs included with the Kali GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.Kali GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Fri Jul 25 22:09:40 2025 from 192.168.56.1
┌──(kali?kali)-[~]
└─$ which uv
/home/kali/.local/bin/uv# 注意根據自己的 shell 來,演示環境是 zsh 
┌──(kali?kali)-[~]
└─$ tail -n 1 .zshrc
export PATH="$HOME/.local/bin:$PATH"┌──(kali?kali)-[~]
└─$ echo $SHELL
/usr/bin/zsh

無法打開 github 解決方案(注意此方法可能也會失效)

后面要訪問github,如果無法訪問,物理機使用下面命令,不過記得修改成自己的chrome路徑,powershell命令有&,cmd請去掉&。
&"Y:\通用工具\谷歌瀏覽器\win10\chrome.exe" --host-rules="MAP github.com octocaptcha.com, MAP github.githubassets.com yelp.com, MAP *.githubusercontent.com githubusercontent.com" --host-resolver-rules="MAP octocaptcha.com 20.27.177.113, MAP yelp.com 199.232.240.116, MAP githubusercontent.com 199.232.176.133"

安裝多版本 python

查看已安裝的python

uv python list

┌──(kali?kali)-[~]
└─$ uv python list
cpython-3.14.0rc1-linux-x86_64-gnu                 <download available>
cpython-3.14.0rc1+freethreaded-linux-x86_64-gnu    <download available>
cpython-3.13.5-linux-x86_64-gnu                    <download available>
cpython-3.13.5+freethreaded-linux-x86_64-gnu       <download available>
cpython-3.12.11-linux-x86_64-gnu                   <download available>
cpython-3.11.13-linux-x86_64-gnu                   <download available>
cpython-3.11.9-linux-x86_64-gnu                    /usr/bin/python3.11
cpython-3.11.9-linux-x86_64-gnu                    /usr/bin/python3 -> python3.11
cpython-3.11.9-linux-x86_64-gnu                    /usr/bin/python -> python3
cpython-3.10.18-linux-x86_64-gnu                   <download available>
cpython-3.9.23-linux-x86_64-gnu                    <download available>
cpython-3.8.20-linux-x86_64-gnu                    <download available>
pypy-3.11.13-linux-x86_64-gnu                      <download available>
pypy-3.10.16-linux-x86_64-gnu                      <download available>
pypy-3.9.19-linux-x86_64-gnu                       <download available>
pypy-3.8.16-linux-x86_64-gnu                       <download available>
graalpy-3.11.0-linux-x86_64-gnu                    <download available>
graalpy-3.10.0-linux-x86_64-gnu                    <download available>
graalpy-3.8.5-linux-x86_64-gnu                     <download available>

uv python install

假設需要安裝 cpython-3.8.20-linux-x86_64-gnu,使用命令uv python install cpython-3.8,不過因為從github拉安裝包,會timeout導致error。

┌──(kali?kali)-[~]
└─$ uv python install cpython-3.8
cpython-3.8.20-linux-x86_64-gnu (download) ------------------------------ 7.53 MiB/19.89 MiB
error: Failed to install cpython-3.8.20-linux-x86_64-gnuCaused by: Failed to extract archive: cpython-3.8.20-20241002-x86_64-unknown-linux-gnu-install_only_stripped.tar.gzCaused by: I/O operation failed during extractionCaused by: failed to unpack `/home/kali/.local/share/uv/python/.temp/.tmp7iIfCn/python/lib/libpython3.8.so.1.0`Caused by: failed to unpack `python/lib/libpython3.8.so.1.0` into `/home/kali/.local/share/uv/python/.temp/.tmp7iIfCn/python/lib/libpython3.8.so.1.0`Caused by: error decoding response bodyCaused by: request or response body errorCaused by: operation timed out

留意Caused by: Failed to extract archive: cpython-3.8.20-20241002-x86_64-unknown-linux-gnu-install_only_stripped.tar.gz的日期20241002

到 uv 的 github 主頁,找安裝文件

地址:https://github.com/astral-sh/python-build-standalone
在這里插入圖片描述
release里面并沒有 cpython3.8
在這里插入圖片描述
releaseurl的日期修改成出錯里的20241002再訪問,再把上面的下載文件:
cpython-3.8.20-20241002-x86_64-unknown-linux-gnu-install_only_stripped.tar.gz的文件名,改成
cpython-3.8.20+20241002-x86_64-unknown-linux-gnu-install_only_stripped.tar.gz進行搜索,搜索后下載到本地即可。
在這里插入圖片描述

下載到本地準備安裝

下載到本地后,用virtualbox拖放進去或者scp進去

C:\Users\Administrator\Downloads>scp "cpython-3.8.20+20241002-x86_64-unknown-linux-gnu-install_only_stripped.tar.gz" kali@192.168.56.103:~/Desktop
kali@192.168.56.103's password:
cpython-3.8.20+20241002-x86_64-unknown-linux-gnu-install_only_stripped.tar.gz         100%   20MB 290.9MB/s   00:00

設置環境變量并安裝

┌──(kali?kali)-[~/Desktop]
└─$ export UV_PYTHON_INSTALL_MIRROR=file:///home/kali/Desktop┌──(kali?kali)-[~/Desktop]
└─$ mkdir 20241002┌──(kali?kali)-[~/Desktop]
└─$ mv cpython-3.8.20+20241002-x86_64-unknown-linux-gnu-install_only_stripped.tar.gz 20241002┌──(kali?kali)-[~/Desktop]
└─$ uv python install cpython-3.8
Installed Python 3.8.20 in 481ms+ cpython-3.8.20-linux-x86_64-gnu (python3.8)┌──(kali?kali)-[~/Desktop]
└─$ tree
.
└── 20241002└── cpython-3.8.20+20241002-x86_64-unknown-linux-gnu-install_only_stripped.tar.gz

驗證安裝結果

┌──(kali?kali)-[~/Desktop]
└─$ uv python list
cpython-3.14.0rc1-linux-x86_64-gnu                 <download available>
cpython-3.14.0rc1+freethreaded-linux-x86_64-gnu    <download available>
cpython-3.13.5-linux-x86_64-gnu                    <download available>
cpython-3.13.5+freethreaded-linux-x86_64-gnu       <download available>
cpython-3.12.11-linux-x86_64-gnu                   <download available>
cpython-3.11.13-linux-x86_64-gnu                   <download available>
cpython-3.11.9-linux-x86_64-gnu                    /usr/bin/python3.11
cpython-3.11.9-linux-x86_64-gnu                    /usr/bin/python3 -> python3.11
cpython-3.11.9-linux-x86_64-gnu                    /usr/bin/python -> python3
cpython-3.10.18-linux-x86_64-gnu                   <download available>
cpython-3.9.23-linux-x86_64-gnu                    <download available>
cpython-3.8.20-linux-x86_64-gnu                    /home/kali/.local/bin/python3.8 -> /home/kali/.local/share/uv/python/cpython-3.8.20-linux-x86_64-gnu/bin/python3.8
cpython-3.8.20-linux-x86_64-gnu                    /home/kali/.local/share/uv/python/cpython-3.8.20-linux-x86_64-gnu/bin/python3.8
pypy-3.11.13-linux-x86_64-gnu                      <download available>
pypy-3.10.16-linux-x86_64-gnu                      <download available>
pypy-3.9.19-linux-x86_64-gnu                       <download available>
pypy-3.8.16-linux-x86_64-gnu                       <download available>
graalpy-3.11.0-linux-x86_64-gnu                    <download available>
graalpy-3.10.0-linux-x86_64-gnu                    <download available>
graalpy-3.8.5-linux-x86_64-gnu                     <download available>
┌──(kali?kali)-[~/Desktop]
└─$ uv run -p 3.8 python -c "import os;os.system('python -V')"
Python 3.8.20┌──(kali?kali)-[~/Desktop]
└─$ uv run -p 3.11 python -c "import os;os.system('python -V')"
Python 3.11.9

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/916269.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/916269.shtml
英文地址,請注明出處:http://en.pswp.cn/news/916269.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

求職招聘小程序源碼招聘小程序開發定制

身份&#xff1a;求職者、企業求職者&#xff1a;完善簡歷&#xff0c;簡歷投遞企業&#xff1a;企業入駐&#xff0c;查看簡歷企業會員&#xff1a;半年 、年度 權益&#xff1a;每日發布條數、刷新條數&#xff0c;簡歷下載數量聊天&#xff1a;求職者可以和企業聊天招聘會…

Git 使用全指南:從配置到免密登錄

Git 使用全指南&#xff1a;從配置到免密登錄一、Git 基礎配置二、Git 代碼提交流程2.1 克隆遠程倉庫2.2 創建并切換分支2.3 暫存文件2.4 提交到本地倉庫2.5 拉取遠程最新代碼2.6 推送本地分支到遠程三、VSCode 服務器免密登錄配置3.1 生成 Windows SSH 密鑰3.2 復制公鑰到服務…

組合期權:領式策略

文章目錄0.簡介1.多頭領式策略&#xff08;Long Collar&#xff09;?1.1 策略構成1.2 適用場景?1.3 損益分析1.4 案例示范2.空頭領式策略&#xff08;Short Collar&#xff09;?2.1 策略構成2.2 適用場景2.3 損益分析2.4 案例示范參考文獻0.簡介 領式策略&#xff08;Colla…

ECSPI控制器

目錄 SPI協議簡介 極性與相位 SPI框圖 單字節收發 發送數據流程 接收數據流程 ECSPI控制器 關鍵特性 時鐘源 主機模式 等待狀態 片選控制 單突發傳輸 多突發傳輸 相位控制 ECSPI Memory Map ECSPI寄存器 ECSPIx_RXDATA ECSPIx_TXDATA ?編輯 ECSPIx_CONREG …

HTTP 與 SpringBoot 參數提交與接收協議方式

HTTP 協議支持多種參數提交方式&#xff0c;主要取決于請求方法(Method)和內容類型(Content-Type)。以下是主要的參數提交協議&#xff1a;1. URL 查詢參數 (Query Parameters)請求方法: GET (也可用于其他方法)格式: ?key1value1&key2value2示例: GET /users?id123&…

Lua(數組)

Lua 數組基礎概念Lua 中的數組實際上是用整數索引的 table&#xff0c;是一種特殊形式的表。數組索引通常從 1 開始&#xff08;Lua 慣例&#xff09;&#xff0c;但也可以從其他值開始。創建數組通過表構造器初始化數組&#xff1a;-- 索引從 1 開始的數組 local arr {10, …

【Docker項目實戰】在Docker環境下部署go-file文件分享工具

【Docker項目實戰】在Docker環境下部署go-file文件分享工具一、go-file介紹1.1 go-file簡介1.2 go-file特點1.3 go-file使用場景二、本地環境介紹2.1 本地環境規劃2.2 本次實踐介紹三、本地環境檢查3.1 檢查Docker服務狀態3.2 檢查Docker版本3.3 檢查docker compose 版本四、下…

C++基礎學習——文件操作詳解

一、文件流類概述 C 標準庫提供了三個主要的文件流類&#xff1a; ifstream (輸入文件流)&#xff1a;用于從文件讀取數據ofstream (輸出文件流)&#xff1a;用于向文件寫入數據fstream (文件流)&#xff1a;既可讀又可寫 這些類都繼承自 iostream 類&#xff0c;因此可以使用 …

Android補全計劃 DrawerLayout使用

DrawerLayout其實用了很久了&#xff0c;甚至封裝了一些代碼方便不同項目使用&#xff0c;但重構代碼的時候突然意識到這塊內容很不成體系&#xff0c;因此又參考了些文檔&#xff0c;組建了自己的一個文檔。 toolbardrawerlayout能寫的效果很多&#xff0c;在此我也只是截取了…

人工智能之數學基礎:概率論之韋恩圖的應用

韋恩圖的應用由于事件的計算有時候太過于抽象了&#xff0c;此時我們可以使用韋恩圖的方式來進行驗證&#xff0c;我們下面來舉一個例子&#xff0c;A∪B&#xff09;-CA∪(B-C)是否成立&#xff1f;我們可以通過韋恩圖來完成這個任務&#xff1a;我們通過這種方式來一點一點的…

小白成長之路-部署Zabbix7(二)

文章目錄一、zabbix-自動發現二、自動注冊三、zabbix-網易云郵箱-發送消息二、zabbix-釘釘告警總結一、zabbix-自動發現 1.在準備兩臺虛擬機&#xff0c;我的是192.168.144.12,192.168.144.13 server換成zabbix服務器的ip地址 vim /etc/zabbix/zabbix_agentd.conf 2.創建自動…

CMU15445-2024fall-project4踩坑經歷

project4目錄Task1Task2ReconstructSeqScanTask3InsertCommitTxnMgrDbgGenerateNewUndoLog And GenerateUpdateUndoLogUpdate And Delete垃圾回收Task4Index Insert并發控制Index ScanDelete、Update并發控制主鍵更新Bonus 1Bonus 2處理寫傾斜感謝CMU的教授們給我們分享了如此精…

C++20 協程

摘要&#xff1a;C20 引入的協程機制為異步編程提供了輕量級解決方案&#xff0c;其核心優勢在于通過用戶態調度實現高效的上下文切換&#xff0c;適用于 I/O 密集型任務、生成器模式等場景。本文系統闡述 C20 協程的底層原理與實踐要點&#xff0c;首先解析協程的基本結構&…

《計算機組成原理與匯編語言程序設計》實驗報告二 基本數字邏輯及漢字顯示

目 錄 一、實驗學時 二、實驗目的 三、實驗要求 四、實驗內容 五、實驗步驟 1、打開Logisim軟件&#xff0c;列出并行四位二進制全加器邏輯電路真值表&#xff0c;并使用與、或、非、異或等基本原件實現并行四位二進制全加器邏輯電路&#xff0c;鋪設完成后進行測試進而…

問卷調查小程序的設計與實現

問卷調查小程序的設計與實現&#xff1a;技術與功能全解析在數字化時代&#xff0c;問卷調查成為數據收集的重要工具。一款高效、易用的問卷調查小程序能夠顯著提升用戶體驗和數據質量。本文將深入探討基于現代技術棧的問卷調查小程序的設計與實現&#xff0c;涵蓋核心功能、技…

STM32項目實戰:正弦波

波形發生器對我的錢包不怎么友好&#xff0c;手里面有stm32f103c8t6&#xff0c;于是就想,放在哪兒吃灰也是吃灰&#xff0c;不如做個正弦波發生器。方案 dac沒怎么用過&#xff0c;所以打算使用輸出模擬正弦波。我們決定采用以下方案&#xff1a;1.使用TIM2_CH3&#xff08;PA…

Unity 時間抗鋸齒(Temporal Antialiasing, TAA)技術解析

時間抗鋸齒&#xff08;Temporal Antialiasing, TAA&#xff09;技術解析 一、什么是時間抗鋸齒&#xff08;TAA&#xff09;&#xff1f; 時間抗鋸齒&#xff08;TAA&#xff09;是一種先進的實時抗鋸齒技術&#xff0c;通過在時間維度上積累多幀渲染數據&#xff0c;實現比傳…

uniapp打開導航軟件并定位到目標位置的實現

/*** 打開導航* param location 經緯度(例如&#xff1a;"117.214713,39.116884")* param address 地址*/ export function mapNavigation(location, address) {const locationArr location.split(,)const longitude locationArr[0]const latitude locationArr[1]…

Mysql實現高可用(主從、集群)

一、背景 需求&#xff1a;客戶要實現Mysql8.0高可用&#xff0c;出現故障時&#xff0c;需要實現自動切換。 分析&#xff1a;實現切換有兩種方式&#xff0c;一種數據庫自動切換&#xff0c;一種代碼實現。 本著麻煩別人&#xff0c;別麻煩自己的原則&#xff0c;得給客戶的D…

AI編程革命:自動化代碼生成、低代碼開發與智能優化實踐全景解析

AI編程革命&#xff1a;自動化代碼生成、低代碼開發與智能優化實踐全景解析 人工智能正在重塑軟件開發的基本范式&#xff0c;從自動化代碼生成到低代碼開發平臺&#xff0c;再到算法智能優化&#xff0c;AI編程技術正以指數級速度改變開發者工作方式。 一、自動化代碼生成技術…