基于Kali linux 安装pyenv及简单使用方法及碰到的问题

系统环境

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            # 列出虚拟环境
相关推荐
苹果醋33 小时前
数据结构其一 线性表
java·运维·spring boot·mysql·nginx
南山鹤1663 小时前
中型规模生产架构部署详细步骤
linux
IvanCodes3 小时前
十六、Linux网络基础理论 - OSI模型、TCP/IP协议与IP地址详解
linux·网络·tcp/ip
CIb0la3 小时前
微软宣布 Windows 11 v25H2 GA
运维·安全·生活
shylyly_3 小时前
Linux-> TCP 编程2
linux·服务器·网络·tcp/ip·松耦合·command程序
upgrador3 小时前
操作系统命令:Linux与Shell(Operating System & Command Line, OS/CLI)目录导航、文件操作与日志查看命令实践
linux·ubuntu·centos
java干货3 小时前
我用Nginx做了负载均衡,还需要API网关吗?
运维·nginx·负载均衡
夜月yeyue4 小时前
多级流水线与指令预测
linux·网络·stm32·单片机·嵌入式硬件
IvanCodes4 小时前
十五、深入理解 SELinux
linux·运维·服务器