当前位置: 首页 > news >正文

【工具类】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.dtcms.com/a/299600.html

相关文章:

  • AI 编程还有多远?我们如何迎接 AI 编程时代?
  • MGRE综合实验
  • 大模型开发工具的汇总
  • 小架构step系列26:Spring提供的validator
  • 秋招Day19 - 分布式 - 分布式事务
  • Android 修改系统时间源码阅读
  • DeepSeek算法学习笔记
  • RabbitMQ--Springboot解决消息丢失
  • Spring Boot集成RabbitMQ终极指南:从配置到高级消息处理
  • Linux进程控制:掌握系统的核心脉络
  • Git版本控制
  • FC(Function Calling)和MCP详解(区别、作用、运用场景)
  • 2.JVM跨平台原理(字节码机制)
  • 【Bluedroid】btif_av_sink_execute_service之服务器禁用源码流程解析
  • 零基础学后端-PHP语言(第二期-PHP基础语法)(通过php内置服务器运行php文件)
  • 机器语言基本概念
  • android开发中的协程和RxJava对比
  • DOM元素添加技巧全解析
  • LangChain + MCP 构建带可视化图表功能的ChatBI智能体
  • Git 创建一个完全没有提交历史的 master 分支
  • 【服务器与部署 27】Shell脚本自动化部署:Python应用一键部署让运维效率提升10倍
  • 【Android】广播机制
  • 【LeetCode 热题 100】131. 分割回文串——回溯
  • 谷歌无法安装扩展程序解决方法(也许成功)
  • JDBC教程,2025版最新讲解.超详细入门教程
  • 从UX到AX:从“设计路径”到“共创关系”的范式革命——Agentic Experience如何重塑未来产品哲学
  • 关于Feign的应用
  • 大话数据结构之<队列>
  • PHP框架之Laravel框架教程:1. laravel搭建
  • 方案C,version1