基于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            # 列出虚拟环境
相关推荐
iCxhust几秒前
windows环境下在Bochs中运行Linux0.12系统
linux·运维·服务器·windows·minix
九河云2 小时前
数字化转型中的网络安全风险与零信任架构实践
运维·科技·安全·web安全·架构
七七七七073 小时前
【计算机网络】深入理解ARP协议:工作原理、报文格式与安全防护
linux·服务器·网络·计算机网络·安全
守城小轩4 小时前
轻量级HTTP&Socks代理GOST: Linux编译安装
运维·网络·网络协议
奋斗的蛋黄5 小时前
网络卡顿运维排查方案:从客户端到服务器的全链路处理
运维·服务器·网络
wanhengidc6 小时前
云手机搬砖 尤弥尔传奇自动化操作
运维·服务器·arm开发·安全·智能手机·自动化
lhxcc_fly7 小时前
Linux网络--8、NAT,代理,网络穿透
linux·服务器·网络·nat
摇滚侠7 小时前
Spring Boot3零基础教程,Spring Boot 应用打包成 exe 可执行文件,笔记91 笔记92 笔记93
linux·spring boot·笔记
wow_DG7 小时前
【运维✨】云服务器公网 IP 迷雾:为什么本机看不到那个地址?
运维·服务器·tcp/ip
yuanManGan7 小时前
走进Linux的世界:初识操作系统(Operator System)
android·linux·运维