当前位置: 首页 > java >正文

linux使用pyenv安装python环境

linux服务器一般会内置python,很多服务如yum会依赖python,但是这个python版本一般很低,如2.7,是无法满足我们的部署需求的,但是这个默认版本不能随便覆盖,因为很多内置服务都是依赖这个版本的,这时可以使用pyenv来安装python

它的功能如下:

功能说明
多版本管理可以安装和使用多个 Python 版本(如 3.8、3.9、3.10、3.11 等)
按项目切换版本不同项目可以使用不同的 Python 版本,互不影响
用户级安装安装在用户目录下,不需要管理员权限
支持自动下载源码编译安装自动从官方下载源码并编译安装指定的 Python 版本
轻量无侵入不会修改系统 Python,只影响当前用户的 shell 环境

安装pyenv

  1. 安装依赖

    # Ubuntu/Debian
    sudo apt-get install -y make build-essential libssl-dev zlib1g-dev \libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm \libncurses5-dev libncursesw5-dev xz-utils tk-dev libffi-dev git# CentOS/RHEL
    sudo yum install -y gcc zlib-devel bzip2 bzip2-devel readline-devel sqlite \sqlite-devel openssl-devel tk-devel libffi-devel git
    
  2. 安装 pyenv

    curl https://pyenv.run | bash
    
  3. 配置环境变量
    将以下内容添加到 ~/.bashrc 或 ~/.zshrc

    export PATH="$HOME/.pyenv/bin:$PATH"
    eval "$(pyenv init -)"
    eval "$(pyenv virtualenv-init -)"
    
     

    重启终端或执行 source ~/.bashrc

  4. 安装 Python 3.8

    pyenv install 3.8.10  # 安装指定版本
    pyenv global 3.8.10  # 设置为全局版本
    python --version  # 验证版本

安装过程提速

我们在安装时经常会出现卡住不动的情况,因为这个包在国外下载很慢,这时我们可以复制下这个地址用迅雷下载就很快,下载完的包放入~/.pyenv/cache/ 中,再重新执行下pyenv install 3.8.10

虽然你现在默认版本是3.8,但不会影响系统级的服务(如 Apache、Nginx、MySQL、systemd 服务等),因为这些服务使用的是系统的默认 Python(通常在 /usr/bin/python),而 pyenv 只是修改了当前用户的 shell 环境下的 Python 路径。

http://www.xdnf.cn/news/6755.html

相关文章:

  • windows服务器下自启动后台运行python脚本
  • 从微积分到集合论(1630-1910)(历史简介)——第1章——积分技巧(1630-1660)(Kirsti Møller Pedersen)
  • 一款强大的压测带宽工具-iperf3
  • FC7300 WDG MCAL 配置引导
  • 路桥塌陷感知监测预警系统解决方案
  • 服务图层自定义参数customParameters使用(Arcgis API for js)
  • 命令拼接符
  • MySQL锁机制详解与加锁流程全解析
  • sychronized原理(嚼碎了喂版)
  • 代码随想录算法训练营第三十八天打卡
  • 数据预处理-数据清洗(缺失值、重复值、异常值)
  • AUTOSAR图解==>AUTOSAR_SWS_ICUDriver
  • 龙虎榜——20250516
  • WHAT - SSR vs SSG vs ISR
  • STL学习
  • python报错:使用json.dumps()时,报错type xxx is not json serializable错误原因及解决方案
  • 反转链表链表数据结构oj题(206)
  • Spring MVC 中请求处理流程及核心组件解析
  • 2024 睿抗机器人开发者大赛CAIP-编程技能赛-本科组(国赛) 解题报告 | 珂学家
  • React中useMemo和useCallback的作用:
  • 人工智能-状态空间-猴子摘香蕉
  • 从零实现一个高并发内存池 - 4
  • 中级网络工程师知识点3
  • 城市排水管网流量监测系统解决方案
  • HC32L190 串口驱动
  • [ linux-系统 ] 命令行参数 | 环境变量
  • 数据库--向量化基础
  • C++跨平台开发:突破不同平台的技术密码
  • 从硬件角度理解“Linux下一切皆文件“,详解用户级缓冲区
  • 增量学习:机器学习领域中的资源高效利用秘籍