Python多环境扩展管理--pyenv的部署与使用

简介: 引言:pyenv是一个简单的python版本管理工具,通过改变shell的环境变量来切换不同的python版本,以达到多版本共存的目的。该工具不支持Windows系统。

引言:pyenv是一个简单的python版本管理工具,通过改变shell的环境变量来切换不同的python版本,以达到多版本共存的目的。该工具不支持Windows系统。

pyenv工作原理如下:

  • pyenv安装后会在系统PATH变量中插入shims路径,每次执行python相关的可执行文件时,会优先在shims里寻找python路径 ~/.pyenv/shims:/usr/local/bin:/usr/bin:/bin;
  • 系统选择python版本,依如下顺序选择python的版本:
    1. shell变量设置(执行pyenv shell查看)
    2. 当前可执行文件目录下的.python_version文件里的版本号(执行pyenv shell查看)
    3. 上层目录查询找到的第一个.pyenv-version文件
    4. 全局的版本号在 ~/.pyenv/version文件内(执行pyenv global查看)
  • 确定版本文件的位置和python版本后,pyenv会根据 版本号在 ~/,pyenv/versions/文件夹中查找对应的python版本。执行命令 pyenv versions可查看系统目前安装的python版本。

部署pyenv

  • 安装epel源
    下载新repo 到/etc/yum.repos.d/
    epel(RHEL 7)
    wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
    epel(RHEL 6)
    wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo

  • 安装git工具
    yum -y install git

  • clone pyenv至家目录
    git clone https://github.com/pyenv/pyenv.git ~/.pyenv

  • 配置pyenv环境变量

echo 'export PYENV_ROOT="$HOME/.pyenv" ' >> ~/.bashrc
echo 'export PATH="$PYENV_ROOT/bin:$PATH" ' >> ~/.bashrc
echo 'eval "$(pyenv init -)" ' >> ~/.bashrc
  • 重启当前shell
    exec $SHELL -l

  • 执行pyenv versions 命令,有类似如下返回结果表示安装正常:

[root@DH-SHARE ~]# pyenv versions
* system (set by /root/.pyenv/version)

使用pyenv

通过pyenv管理多python版本

  • pyenv命令使用规则如下:
    Usage: pyenv <command> [<args>]

接下来,通过pyenv安装python 2.7.8版本来熟悉其用法。

  • 查看可安装的版本列表
    pyenv install -list

  • 安装指定的python版本
    pyenv install 2.7.8

    如果安装过程中出现如下图Warning时,则表示缺少相应的开发库,先卸载后,再安装缺少的开发库,再安装python即可。

img_04f9313a8325622843c7e782a41e2b11.png
Paste_Image.png
  - 先卸载
  pyenv uninstall 2.7.8

  // 如果不知道缺少的开发库包的名称,可以用以下命令搜索
  yum list | grep "readline"

  - 安装缺少的开发库
  yum -y install readline-devel bzip2-devel soci-sqlite3-devel

  - 再重新安装python
  pyenv install 2.7.8
  • 切换当前目录的python版本为2.7.8
    pyenv local 2.7.8

  • 切换全局目录的python版本为2.7.8
    pyenv global 2.7.8

  • 刷新shims
    pyenv rehash

pyenv更多用法如下:

命令 功能
commands 列出pyenv的所有可用命令
local 设置或列出当前目录下的python版本号
global 设置或列出全局环境下的python版本号
shell 设置或列出shell环境下的python版本号
install 安装指定的python版本
uninstall 卸载指定的python版本
rehash 重新加载pyenv的shims路径(安装完python版本后需执行该命令)
version 展示当前python版本号及其生效路径
versions 列出pyenv管控的所有可用的python版本
which 列出要使用命令的绝对路径
whence 列出后缀命令的所有可用版本

一键安装pyenv脚本


#!/bin/bash

if [ ! -e "/etc/yum.repos.d/epel.repo" ];then
    uname -r | grep ^3 &>/dev/null
    if [ $? -eq 0 ];then
        wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
    else
        wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo
    fi
fi

rpm -q git &>/dev/null || yum install -y git

git clone https://github.com/pyenv/pyenv.git ~/.pyenv

echo 'export PYENV_ROOT="$HOME/.pyenv" ' >> ~/.bashrc
echo 'export PATH="$PYENV_ROOT/bin:$PATH" ' >> ~/.bashrc
echo 'eval "$(pyenv init -)" ' >> ~/.bashrc

exec $SHELL -l

安装方式二:

pyenv-installer安装

curl -L https://github.com/pyenv/pyenv-installer/raw/master/bin/pyenv-installer | bash

更新
pyenv update

卸载
rm -fr ~/.pyenv 并从~/.bashrc中删除这三行:

export PATH="~/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
相关文章
|
1月前
|
JavaScript 前端开发 机器人
【Azure Bot Service】在中国区Azure上部署机器人的 Python 版配置
本文介绍了在中国区Azure上使用Python SDK配置Azure Bot Service时遇到的问题及解决方案,涵盖参数设置与适配器配置,适用于希望在Azure中国区部署Python机器人的开发者。
|
4月前
|
人工智能 安全 Shell
Jupyter MCP服务器部署实战:AI模型与Python环境无缝集成教程
Jupyter MCP服务器基于模型上下文协议(MCP),实现大型语言模型与Jupyter环境的无缝集成。它通过标准化接口,让AI模型安全访问和操作Jupyter核心组件,如内核、文件系统和终端。本文深入解析其技术架构、功能特性及部署方法。MCP服务器解决了传统AI模型缺乏实时上下文感知的问题,支持代码执行、变量状态获取、文件管理等功能,提升编程效率。同时,严格的权限控制确保了安全性。作为智能化交互工具,Jupyter MCP为动态计算环境与AI模型之间搭建了高效桥梁。
310 2
Jupyter MCP服务器部署实战:AI模型与Python环境无缝集成教程
|
4月前
|
Python
在VScode环境下配置Python环境的方法
经过上述步骤,你的VSCode环境就已经配置好了。请尽情享受这扇你为自己开启的知识之窗。如同你在冒险世界中前行,你的探索之路只有越走越广,你获得的知识只会越来越丰富,你的能力只会越来越强。
421 37
|
6月前
|
Docker Python 容器
Docker——阿里云服务器使用Docker部署python项目全程小记
本文记录了我在阿里云服务器上使用Docker部署python项目(flask为例)的全过程,在这里记录和分享一下,希望可以给大家提供一些参考。
664 2
|
6月前
|
Java API Docker
在线编程实现!如何在Java后端通过DockerClient操作Docker生成python环境
以上内容是一个简单的实现在Java后端中通过DockerClient操作Docker生成python环境并执行代码,最后销毁的案例全过程,也是实现一个简单的在线编程后端API的完整流程,你可以在此基础上添加额外的辅助功能,比如上传文件、编辑文件、查阅文件、自定义安装等功能。 只有锻炼思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~
在线编程实现!如何在Java后端通过DockerClient操作Docker生成python环境
|
8月前
|
Shell Linux Ruby
Python3虚拟环境venv
`venv` 是 Python 的虚拟环境工具,用于为不同项目创建独立的运行环境,避免依赖冲突。通过 `python3 -m venv` 命令创建虚拟环境,并使用 `source bin/activate` 激活。激活后,所有 Python 包将安装在该环境中,不影响系统全局环境。退出环境使用 `deactivate` 命令。每个虚拟环境拥有独立的包集合,确保项目间的隔离性。删除虚拟环境只需删除其目录即可。
494 34
|
8月前
|
SQL 分布式计算 数据处理
云产品评测|分布式Python计算服务MaxFrame | 在本地环境中使用MaxFrame + 基于MaxFrame实现大语言模型数据处理
本文基于官方文档,介绍了由浅入深的两个部分实操测试,包括在本地环境中使用MaxFrame & 基于MaxFrame实现大语言模型数据处理,对步骤有详细说明。体验下来对MaxCompute的感受是很不错的,值得尝试并使用!
190 1
|
8月前
|
Shell 程序员 开发者
轻松搞定在Python中构建虚拟环境
本教程教你如何使用业界公认的最佳实践,创建一个完全工作的Python开发环境。虚拟环境通过隔离依赖项,避免项目间的冲突,并允许你轻松管理包版本。我们将使用Python 3的内置`venv`模块来创建和激活虚拟环境,确保不同项目能独立运行,不会相互干扰。此外,还将介绍如何检查Python版本、激活和停用虚拟环境,以及使用`requirements.txt`文件共享依赖项。 通过本教程,你将学会: - 创建和管理虚拟环境 - 避免依赖性冲突 - 部署Python应用到服务器 适合新手和希望提升开发环境管理能力的开发者。
551 2
|
8月前
|
Python
探索Python虚拟环境:virtualenv、venv与pipenv比较
在Python开发中,有效的环境管理至关重要。virtualenv、venv和pipenv是常用的虚拟环境管理工具。virtualenv支持Python 2.7+和3.3+,可创建独立环境;venv为Python 3.3+内置库,简单轻量但功能有限;pipenv则结合了包管理和虚拟环境管理,生成Pipfile.lock确保依赖确定性和安全性,推荐作为首选工具。
317 2
|
8月前
|
人工智能 编译器 Python
python已经安装有其他用途如何用hbuilerx配置环境-附带实例demo-python开发入门之hbuilderx编译器如何配置python环境—hbuilderx配置python环境优雅草央千澈
python已经安装有其他用途如何用hbuilerx配置环境-附带实例demo-python开发入门之hbuilderx编译器如何配置python环境—hbuilderx配置python环境优雅草央千澈
181 0
python已经安装有其他用途如何用hbuilerx配置环境-附带实例demo-python开发入门之hbuilderx编译器如何配置python环境—hbuilderx配置python环境优雅草央千澈

热门文章

最新文章

推荐镜像

更多