基于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            # 列出虚拟环境
相关推荐
测试员周周3 小时前
【Appium 系列】第16节-WebView-H5上下文切换 — 混合应用的自动化难点
运维·开发语言·人工智能·功能测试·appium·自动化·测试用例
小鹏linux5 小时前
Ubuntu 22.04 部署开源免费具有精美现代web页面的Casdoor账号管理系统
linux·前端·ubuntu·开源·堡垒机
在角落发呆6 小时前
Linux转发配置:解锁网络互联的核心密码
linux·运维·网络
齐潇宇6 小时前
Zabbix 7 概述与配置
linux·zabbix·监控告警
裴东青8 小时前
10-实战:RuoYi-Cloud的自动化发布
运维·ci/cd·自动化
江公望8 小时前
Ubuntu htop命令,10分钟讲清楚
linux·服务器
哎呦,帅小伙哦8 小时前
Linux 时间:从原子钟到 clock_gettime 的每一面
linux·运维·服务器
sxgzzn8 小时前
新能源场站数智化转型:基于数字孪生与AI的智慧运维管理平台解析
大数据·运维·人工智能
张小姐的猫8 小时前
【Linux】多线程 —— 线程互斥
linux·运维·服务器·c++
CodeMartain9 小时前
Dify Windows 原生部署(无 Docker、纯本地)
运维·docker·容器