文章目錄
- 前置工作
- 環境說明
- 如果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
安裝后會無法找到uv
的bin
文件,因為二進制文件沒有寫入環境變量,寫入后即可解決。
┌──(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
把release
的url
的日期修改成出錯里的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