【工具类】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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈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编程技术正以指数级速度改变开发者工作方式。 一、自动化代码生成技术…