centos下使用pyenv管理python版本

在 CentOS 上安装 pyenvpyenv-virtualenv,可以按照以下步骤进行操作:

ps: centos7 最高适配到3.9.*

步骤 1:安装依赖

首先,确保你的系统中安装了必需的依赖项。你可以使用以下命令安装它们:

复制代码
[root@ ~]# yum groupinstall "Development Tools"
[root@ ~]# yum install gcc zlib-devel bzip2-devel readline-devel sqlite-devel openssl-devel tk-devel libffi-devel

步骤 2:安装 pyenv

接下来,安装 pyenv。你可以通过克隆 pyenv 的 GitHub 仓库来安装:

复制代码
# 该命令将自动安装 pyenv、pyenv-virtualenv 和其他一些辅助工具。
# 但是会安装到$Home/.pyenv 目录下
[root@ tools]# curl https://pyenv.run | bash


# 这个方法可以安装到指定目录下
[root@ tools]# export PYENV_ROOT="/usr/local/pyenv"
[root@ tools]# curl https://pyenv.run | bash

# 或者 
[root@ tools]# git clone https://github.com/pyenv/pyenv.git /usr/local/pyenv
[root@ tools]# git clone https://github.com/pyenv/pyenv-virtualenv.git /usr/local/pyenv/plugins/pyenv-virtualenv

步骤 3:配置环境变量

安装完成后,需要将 pyenv 路径添加到你的 shell 配置文件中。根据你使用的 shell(bash、zsh 等),编辑相应的配置文件。

对于 bash,在 ~/.bashrc 文件中添加以下内容:

复制代码
[root@ tools]# vim ~/.bashrc

# 设置 pyenv 根目录
export PYENV_ROOT="/usr/local/pyenv"
# 检查 pyenv 是否存在,并添加其路径
command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"
# 初始化 pyenv 相关设置
eval "$(pyenv init --path)"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"

[root@ local]# source ~/.bashrc

步骤 4:安装 Python 版本

现在,你已经可以使用 pyenv 安装多个 Python 版本了。你可以列出可安装的版本:

复制代码
[root@ local]# pyenv install --list

会返回很对的版本,选择需要安装的版本即可。如果安装不成功,可以选择自己下载指定版本,再安装:

复制代码
[root@ local]# pyenv install 3.9.21
WARNING: Please make sure you remove any previous custom paths from your /root/.pydistutils.cfg file.
Downloading Python-3.9.21.tar.xz...
-> https://www.python.org/ftp/python/3.9.21/Python-3.9.21.tar.xz

# 这里如果卡住了,下载安装不成功,我们换种方式
[root@ local]# cd /usr/local/pyenv/
[root@ pyenv]# mkdir cache
[root@ cache]# cd cache
[root@ cache]# wget https://www.python.org/ftp/python/3.9.21/Python-3.9.21.tar.xz

# 下载完成后
[root@ cache]# pyenv install 3.9.21
WARNING: Please make sure you remove any previous custom paths from your /root/.pydistutils.cfg file.
Installing Python-3.9.21...
Installed Python-3.9.21 to /usr/local/pyenv/versions/3.9.21

步骤 5:查看已安装的 Python 版本和虚拟环境

查看当前安装的 Python 版本:

复制代码
[root@ cache]# pyenv versions
* system (set by /usr/local/pyenv/version)
  3.9.21

步骤 6:设置全局 Python 版本

你可以设置一个全局的 Python 版本,这将是系统默认使用的版本:

复制代码
[root@ cache]# pyenv global 3.9.21
[root@ cache]# pyenv versions
  system
* 3.9.21 (set by /usr/local/pyenv/version)

步骤 7:创建虚拟环境

使用 pyenv-virtualenv 创建虚拟环境。例如,创建一个名为 myenv 的虚拟环境:

复制代码
[root@ cache]# pyenv virtualenv 3.9.21 myenv
Looking in links: /tmp/tmptpra4pd8
Requirement already satisfied: setuptools in /usr/local/pyenv/versions/3.9.21/envs/myenv/lib/python3.9/site-packages (58.1.0)
Requirement already satisfied: pip in /usr/local/pyenv/versions/3.9.21/envs/myenv/lib/python3.9/site-packages (23.0.1)

步骤 8:激活虚拟环境

要激活刚刚创建的虚拟环境,可以使用以下命令:

复制代码
[root@ cache]# pyenv activate myenv
(myenv) [root@ cache]# 

如果想直接通过安装的虚拟环境的解释器执行脚本,可以使用以下命令:

复制代码
[root@ cache]# /usr/local/pyenv/versions/3.9.21/bin/python -V
Python 3.9.21

[root@ cache]# /usr/local/pyenv/versions/myenv/bin/python -V
Python 3.9.21

步骤 9:退出虚拟环境

退出当前虚拟环境,可以运行:

复制代码
(myenv) [root@ cache]# pyenv deactivate

步骤 10:删除虚拟环境、安装的python

如果删除虚拟环境、安装的python:

复制代码
[root@ cache]# pyenv virtualenvs
  3.9.21/envs/myenv (created from /usr/local/pyenv/versions/3.9.21)
  myenv (created from /usr/local/pyenv/versions/3.9.21)

[root@ cache]# pyenv uninstall myenv
pyenv: remove /usr/local/pyenv/versions/myenv? (y/N) y
pyenv-virtualenv: remove /usr/local/pyenv/versions/3.9.21/envs/myenv? (y/N) y

[root@ cache]# pyenv virtualenvs

[root@ cache]# pyenv versions
  system
* 3.9.21 (set by /usr/local/pyenv/version)

[root@ cache]# pyenv uninstall 3.9.21
pyenv: remove /usr/local/pyenv/versions/3.9.21? (y/N) y
pyenv: 3.9.21 uninstalled

[root@ cache]# pyenv versions
pyenv: version `3.9.21' is not installed (set by /usr/local/pyenv/version)
  system
相关推荐
R_.L3 分钟前
Linux : 线程【同步与互斥】
linux
再睡一夏就好5 分钟前
从硬件角度理解“Linux下一切皆文件“,详解用户级缓冲区
linux·服务器·c语言·开发语言·学习笔记
reasonsummer4 小时前
【办公类-100-01】20250515手机导出教学照片,自动上传csdn+最大化、最小化Vs界面
开发语言·python
Doker 多克4 小时前
Python-Django系列—日志
python·日志
苏三福5 小时前
ros2 hunmle bag 数据包转为图片数据 python版
开发语言·python·ros2humble
honey ball5 小时前
R & S的EMI接收机面板
linux·运维·网络
木下-俱欢颜6 小时前
搭建基于chrony+OpenSSL(NTS协议)多层级可信时间同步服务
运维·网络安全·udp·ssl
大神薯条老师6 小时前
Python零基础入门到高手8.4节: 元组与列表的区别
开发语言·爬虫·python·深度学习·机器学习·数据分析
z人间防沉迷k6 小时前
堆(Heap)
开发语言·数据结构·笔记·python·算法
小白学大数据7 小时前
Python爬虫如何应对网站的反爬加密策略?
开发语言·爬虫·python