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. 【已解决】VMware Tools 启动脚本未能在虚拟机中成功运行。如果您在此虚拟机中配置了自定义启动脚本,请确保该脚本没有错误。您也可以提交支持请求,报告此问题。

    参考:https://www.cnblogs.com/rainbow-1/p/15391407.html

  2. postman测试接口时的参数对应接口的两种情况

    第一种通过json字符串的情况去进行测试,最终将json字符串转成对应的对象 代码里面一定要加上@RequestBody注解,即使是一个字符串也需要加这个注解 第二种通过key-value的形式去加入 ...

  3. SC的板子库~

    观前须知 Sugar_Cube的博客园主页 声明 本文所有内容遵循CC BY-NC-SA 4.0 Deed原则 本文包含了笔者常用的OI算法.数据结构的模板 不保证算法最优,但能通过相应的模板题(如果 ...

  4. #根号分治,前缀和,双指针#CF1446D2 Frequency Problem (Hard Version)

    题目 给定一个长度为 \(n\) 的序列,问是否存在一个最长的区间使得至少存在两个众数. 分析 实际上 Easy Version 是用来启发大于根号的做法的. 众数可以说有一个性质吧,答案区间中的其中 ...

  5. Lambda表达式和闭包Closure

    目录 简介 JS中的闭包 java中的闭包 深入理解lambda表达式和函数的局部变量 总结 简介 我们通常讲到闭包,一般都是指在javascript的环境中.闭包是JS中一个非常重要的也非常常用的概 ...

  6. OpenHarmony 3.1 Release版本关键特性解析——ArkUI框架又有哪些新增能力?

     ArkUI 是一套 UI 开发框架,它提供了开发者进行应用 UI 开发时所必须的能力.随着 OpenAtom OpenHarmony(以下简称"OpenHarmony") 3.1 ...

  7. OpenHarmony littlefs文件系统存储结构与IO性能优化分析

    引言 随着科技的发展和网络技术的进步,计算机存储空间愈加紧张,存储空间对文件系统的功能需求越来越大,大规模的数据增长为文件存储.非结构化数据存储提出了新的挑战. 对于许多物联网设备而言,拥有一个小型且 ...

  8. 深入浅出 C 语言:学变量、掌控流程、玩指针,全方位掌握 C 编程技能

    C 语言简介 C 语言介绍 C 语言的特性 C 语言相对于其他语言的优势 C 程序的编译 C 中的 Hello World 程序 参考文章: C 语言入门:如何编写 Hello World C 语言函 ...

  9. Maven——阿里云镜像

    <mirror> <id>nexus-aliyun</id> <mirrorOf>*,!jeecg,!jeecg-snapshots</mirro ...

  10. openGauss单机部署

    openGauss 单机部署 一.安装环境 操作系统:虚拟机 VMware.CentOS7.9 环境设置: (1)虚拟机内存 3G.磁盘 100G (2)系统版本修改 一开始使用了 centos8,无 ...