系统环境
bash
Kali 版本: Kali GNU/Linux Rolling
内核版本: 6.0.0-kali3-amd64
系统架构: x86_64
内核发布时间: #1 SMP PREEMPT_DYNAMIC Debian 6.0.7-1kali1 (2022-11-07)
一、安装 pyenv:
bash
curl https://pyenv.run | bash
二、将 pyenv 添加到 shell 配置(在 ~/.bashrc 或 ~/.zshrc 中添加):
bash
# pyenv 配置
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
export PYTHON_BUILD_MIRROR_URL="https://mirrors.huaweicloud.com/python/"
# 设置华为的镜像源
export PYTHON_BUILD_MIRROR_URL_SKIP_CHECKSUM=1
eval "$(pyenv virtualenv-init -)"
# 初始化 pyenv
if command -v pyenv 1>/dev/null 2>&1; then
eval "$(pyenv init -)"
fi
修改完文件记得使其生效
bash
source ~/.zshrc 或 source ~/.bashrc
注:如何判断使用~/.bashrc 还是 ~/.zshrc
bash
echo $SHELL
#根据输出结果判断:
#如果输出显示 /bin/bash → 则是使用 ~/.bashrc
#如果输出显示 /bin/zsh → 则是使用 ~/.zshrc
三、基本使用方法
1、查看可用的 Python 版本
bash
# 查看所有可用版本
pyenv install --list
# 如:查看可用的 3.8 序列版本
pyenv install --list | grep "3.8." | grep -v "dev\|a\|b\|rc" | tail -10
2、安装 Python 版本(自动)
bash
# 安装特定版本
pyenv install 3.8.12
pyenv install 3.9.7
pyenv install 3.10.2
# 安装最新版本
pyenv install 3.11:latest
# 安装完验证查看已安装的版本
pyenv versions
# 查看当前使用的版本
pyenv version
2、安装 Python 版本(手动下载安装方法)
bash
# 1. 手动下载
cd ~
wget https://mirrors.huaweicloud.com/python/3.8.12/Python-3.8.12.tar.xz
# 2. 创建缓存目录
mkdir -p ~/.pyenv/cache
# 3. 移动到缓存目录
mv Python-3.8.12.tar.xz ~/.pyenv/cache/
# 4. 安装
pyenv install 3.8.12
注:在安装 Python 3.8.18 时碰到的问题,如缺少必要的系统库
bash
pyenv install 3.8.18
Downloading Python-3.8.18.tar.xz...
-> https://mirrors.huaweicloud.com/python/3.8.18/Python-3.8.18.tar.xz
Installing Python-3.8.18...
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/home/arthur/.pyenv/versions/3.8.18/lib/python3.8/bz2.py", line 19, in <module>
from _bz2 import BZ2Compressor, BZ2Decompressor
ModuleNotFoundError: No module named '_bz2'
WARNING: The Python bz2 extension was not compiled. Missing the bzip2 lib?
Traceback (most recent call last):
File "<string>", line 1, in <module>
ModuleNotFoundError: No module named 'readline'
WARNING: The Python readline extension was not compiled. Missing the GNU readline lib?
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/home/arthur/.pyenv/versions/3.8.18/lib/python3.8/ssl.py", line 98, in <module>
import _ssl # if we can't import it, let the error propagate
ModuleNotFoundError: No module named '_ssl'
ERROR: The Python ssl extension was not compiled. Missing the OpenSSL lib?
Please consult to the Wiki page to fix the problem.
https://github.com/pyenv/pyenv/wiki/Common-build-problems
BUILD FAILED (Kali 2022.4 using python-build 2.6.8)
Inspect or clean up the working tree at /tmp/python-build.20251006220940.383985
Results logged to /tmp/python-build.20251006220940.383985.log
Last 10 log lines:
LD_LIBRARY_PATH=/tmp/python-build.20251006220940.383985/Python-3.8.18 ./python -E -m ensurepip \
$ensurepip --root=/ ; \
fi
Looking in links: /tmp/tmp6vu3i2o_
Processing /tmp/tmp6vu3i2o_/setuptools-56.0.0-py3-none-any.whl
Processing /tmp/tmp6vu3i2o_/pip-23.0.1-py3-none-any.whl
Installing collected packages: setuptools, pip
WARNING: The scripts pip3 and pip3.8 are installed in '/home/arthur/.pyenv/versions/3.8.18/bin' which is not on PATH.
Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.
Successfully installed pip-23.0.1 setuptools-56.0.0
解决方法:
bash
# 在 Kali Linux 上安装编译依赖
sudo apt update
sudo apt install -y \
make build-essential libssl-dev zlib1g-dev \
libbz2-dev libreadline-dev libsqlite3-dev \
wget curl llvm libncursesw5-dev xz-utils \
tk-dev libxml2-dev libxmlsec1-dev libffi-dev \
liblzma-dev \
libgdbm-dev libgdbm-compat-dev \
libnss3-dev libreadline6-dev
查看及清除安装的版本
bash
# 查看缓存和版本
pyenv versions
# 清除已安装的版本
pyenv uninstall 版本号
3、设置 Python 版本(优先级:shell > local > global)
bash
# 设置全局默认版本
pyenv global 3.9.7
# 为当前目录设置本地版本(创建 .python-version 文件)
pyenv local 3.8.12
# 为当前 shell 会话设置临时版本
pyenv shell 3.10.2
四、实际运用操作流程示例
1、创建新项目
bash
# 1. 创建项目目录
mkdir my-new-project
cd my-new-project
# 2. 安装所需的 Python 版本(如果还没有)
pyenv install 3.10.2
# 下载好后进行验证是否成功
pyenv versions
# 3. 创建专属虚拟环境
pyenv virtualenv 3.10.2 my-new-project-env
# 4. 设置为项目本地环境(专属虚拟环境)
pyenv local my-new-project-env
# 5. 安装项目依赖
pip install -r requirements.txt
2、使用git下载项目
bash
# git下载克隆项目后
git clone https://github.com/username/my-web-app.git
cd my-web-app
# 创建相同的虚拟环境
pyenv virtualenv 3.9.18 my-web-app-env
pyenv local my-web-app-env
# 安装依赖
pip install -r requirements.txt
注:pyenv local my-web-app-env 这一步可能会出现没有权限的报错,如
解决方法:
bash
# 下载的目录没有权限的报错,需把将目录所有权改为当前用户
sudo chown -R $USER:$USER ~/my-web-app-env
五、简单常用命令汇总
bash
# 安装和管理
pyenv install --list # 列出可安装版本
pyenv install 3.9.7 # 安装特定版本
pyenv uninstall 3.9.7 # 卸载版本
# 版本切换
pyenv versions # 列出已安装版本
pyenv global 3.9.7 # 设置全局版本
pyenv local 3.8.12 # 设置本地版本
pyenv shell 3.10.2 # 设置shell版本
# 虚拟环境
pyenv virtualenv 3.9.7 myenv # 创建虚拟环境
pyenv activate myenv # 激活虚拟环境
pyenv deactivate # 停用虚拟环境
pyenv virtualenvs # 列出虚拟环境