ubuntu安装pyenv 管理多版本Python

参考文档:

https://www.jianshu.com/p/731fac7b11a4

https://blog.csdn.net/weixin_39784263/article/details/110279912

https://www.cnblogs.com/nangec/p/12788811.html

pyenv 用来解决这类问题。它可以安装、卸载、编译、管理多个 python 版本,并随时将其中一个设置为工作环境。

pyenv 不支持 Windows 系统。

安装pyenv:

$ yum install git -y # 先安装git,若已安装跳过

$ git clone git://github.com/yyuu/pyenv.git ~/.pyenv

$ echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc

$ echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc

$ echo 'eval "$(pyenv init -)"' >> ~/.bashrc

当然咯,你也可以直接把文本加到~/.bashrc中:

export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
if command -v pyenv 1>/dev/null 2>&1; then
eval "$(pyenv init -)"
fi

这样下次登陆,或者直接用命令:source ~/.bashrc ,pyenv命令就可以使用了!

接下来我们就可以安装python了,但是再安装之前,我们必须要安装python所需要的依赖包,这个必须要安装,:

$ sudo apt-get install libc6-dev gcc

$ sudo apt-get install -y make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm

$ pyenv rehash   # 数据库进行更新

如果是centos系统,库里没有这些源,yum库里面找不到的话,就可以考虑安装epel-release,epel-release可以扩充yum库。

如何安装epel-release?

yum install epel-release

安装指定Python版本

你就可以愉快的执行:

pyenv install 3.10.0

如果一直卡在下载的那里,可能是网速问题

解决方法

  1. 新建文件夹.pyenv/cache

  2. 手工下载安装包Python-3.10.0.tar.xz.pyenv/cache里

    包的下载地址:

    https://www.python.org/ftp/python/3.10.0/Python-3.10.0.tar.xz

    https://www.python.org/ftp/python/3.8.8/Python-3.8.8.tar.xz (centos3.8.8支持)

  3. 执行安装命令pyenv install 3.10.0

常用pyenv命令

$ pyenv install --list # 显示可以安装的python版本
$ pyenv install -l # 显示可以安装的python版本
$ pyenv install 3.10.0 # 安装3.10.0版本的CPython,嘿嘿!
$ pyenv global 3.10.0 # 设置全局状态的python版本,*表示当前使用的版本
$ pyenv versions # 显示所有已经安装的python版本
$ pyenv version # 显示当前目录下采用的 python
$ pyenv local 3.10.0 # 会在目录下生成 .python-version 文件,用来指定当前目录下使用python的版本

同样此处需要重启终端对应版本才会正式生效

有时设置了pyenv local版本后,再设置global会发现没有生效,可以尝试:

pyenv local --unset

解除local设置。

要切换回系统版本,用同样命令:

$ pyevn global system

卸载python版本

$ pyenv uninstall 3.7.3

设置为系统变量:

sudo ln -s /home/haima/.pyenv/versions/3.10.0/bin/python3 /usr/bin/python310
sudo ln -s /home/haima/.pyenv/versions/3.10.0/bin/pip3.10 /usr/bin/pip310
python3 -V
pip3 -V

pyenv 命令列表

https://links.jianshu.com/go?to=https%3A%2F%2Fgithub.com%2Fyyuu%2Fpyenv%2Fblob%2Fmaster%2FCOMMANDS.md%23command-reference

注意事项:

输入python即可使用新版的python;
系统自带的脚本会以/usr/bin/python的方式直接调用老版本的python,因而不会对系统脚本产生影响;
使用pip安装第三方模块时会安装到~/.pyenv/versions/3.10.0下,不会和系统模块发生冲突;
使用pip安装模块后,可能需要执行pyenv rehash更新数据库。

pycharm配置



如何在Ubuntu 20.04上安装Pyenv 管理多版本Python的更多相关文章

  1. 如何在Ubuntu 20.04上安装和保护phpMyAdmin

    转载csdn:cukw6666 https://blog.csdn.net/cukw6666/article/details/107985170

  2. Ubuntu 20.04上安装MySQL教程,ubuntu安装mysql

    在Ubuntu 20.04上安装MySQL教程 先决条件 确保您以具有sudo特权的用户身份登录. 在Ubuntu上安装MySQL 在撰写本文时,Ubuntu存储库中可用的MySQL的最新版本是MyS ...

  3. 如何在Ubuntu 18.04上安装Pip

    一.简介: Pip是一个软件包管理系统,它简化了用Python编写的软件包(如Python包索引(PyPI)中的软件包)的安装和管理. 在Ubuntu 18.04上缺省没有安装Pip,但安装非常简单. ...

  4. 如何在Ubuntu 16.04上安装配置Redis

    如何在Ubuntu 16.04上安装配置Redis Redis是一个内存中的键值存储,以其灵活性,性能和广泛的语言支持而闻名.在本指南中,我们将演示如何在Ubuntu 16.04服务器上安装和配置Re ...

  5. 如何在Ubuntu 18.04上安装和配置Apache 2 Web服务器(转)

    如何在Ubuntu 18.04上安装和配置Apache 2 Web服务器 什么是Apache Web Server? Apache或Apache HTTP服务器是一个免费的开源Web服务器,由Apac ...

  6. 如何在Ubuntu 18.04上安装Go

    如何在Ubuntu 18.04上安装Go 谢鸢发表于云计算教程系列订阅98 介绍 课程准备 第1步 - 安装Go 第2步 - 设置Go路径 第3步 - 测试您的安装 结论 介绍 Go是Google开发 ...

  7. 如何在Ubuntu 18.04上安装Apache Web服务器

    一. apt库安装 1.在终端输入更新检查命令,sudo apt-get update 2. 在更新完成后(如果不想检查更新,也可直接输入此步)输入:sudo apt-get install apac ...

  8. 如何在Ubuntu 18.04上安装和卸载TeamViewer

    卸载命令:sudo apt --purge remove teamviewer 安装:https://www.linuxidc.com/Linux/2018-05/152282.htm 如何在Ubun ...

  9. 如何在Ubuntu 18.04上安装Django

    Django是一个免费的开源高级Python Web框架,旨在帮助开发人员构建安全,可扩展和可维护的Web应用程序. 根据您的需要,有不同的方法来安装Django.它可以使用pip在系统范围内安装或在 ...

  10. 如何在Ubuntu 16.04上安装Apache Web服务器

    转载自:https://www.howtoing.com/how-to-install-the-apache-web-server-on-ubuntu-16-04 介绍 Apache HTTP服务器是 ...

随机推荐

  1. FineReport 常用日期公式

    获取当前月份最后一天 DATEINMONTH(today(), -1) 获取当前月份第一天 DATEINMONTH(today(), 1) 获取上个月最后一天 DATEINMONTH(MONTHDEL ...

  2. 才储性格测试(INTJ 专家型——追求能力与独立)

    INTJ 专家型--追求能力与独立 一.你的荣格理论图形 二.基本描述 才储分析:您的性格类型倾向为" INTJ "(内向 直觉 思维 判断 倾向度: I60 N56 T74 J5 ...

  3. kafka集群启动命令脚本文件kf.sh

    注意代码缩进 添加执行权限 chmod +x kf.sh 1 #! /bin/bash 2 case $1 in 3 "start"){ 4 for i in hadoop102 ...

  4. keycloak~在认证的action中自定义重定向地址

    场景与实现逻辑 我的登录接口,在输入账号密码成功后进行中间页 中间页可以通过添加Authenticator的实现类来写逻辑 authenticate方法是渲染页面的,action方法是提交表单后的逻辑 ...

  5. #拉格朗日插值,线性筛#洛谷 5442 【XR-2】约定 (加强版)

    题目 一个\(n\)个点的完全图, 第\(i\)个点到第\(j\)个点的边权是\((i+j)^k\), 现在把这个完全图变成一棵树, 求这棵树边权和的期望值 \((n\leq 10^{10000},k ...

  6. 成长计划知识赋能 | 第十期:DAYU200开发入门秒Get

      2021年12月,OpenAtom OpenHarmony(以下简称"OpenHarmony")开源开发者成长计划开启了第一节OpenHarmony知识赋能直播课程,给广大开发 ...

  7. Unity-PC 端调用SpVoice语音 (文字转语音)

    第一步引用文件 在VS当中 点击项目->添加引用-> 搜索Microsoft Speech Objecet Library 然后选中前面的白色方块点击确定就行了 插入之后 你的引用库中会多 ...

  8. Next.js 实战

    0x1 CSR,SSR,SSG CSR 客户端渲染(Client-Side Rendering).常见 B 端 Web 应用开发模式,前后端分离,服务器压力相对更轻,渲染工作在客户端进行,服务器直接返 ...

  9. 升级gradle:Could not find method jackOptions() for arguments

    前言 这是我在升级gradle发生的错误. 解决 原因是被废弃了: 删除: jackOptions { enabled true } 解释一下什么是jack: Jack 是 Java Android ...

  10. 重新整理数据结构与算法(c#)—— 算法套路分治算法[二十五]

    前言 有一个汉罗塔的游戏如下: 汉诺塔:汉诺塔(又称河内塔)问题是源于印度一个古老传说的益智玩具. 大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘. 大梵天 ...