一般Linux默认版本都是Python2的版本,现在越来越多的项目使用Python3,我们需要安装不同的Python版本,又不想引起冲突,可以使用Python多版本管理工具

1. 下载pyenv:https://github.com/pyenv/pyenv#installation

// git速度慢,建议电脑代理download下载然后传到服务器/root目录

2. 解压pyenv:yum install -y unzip && unzip pyenv-master.zip

[root@ubuntu2020 ~]#mkdir -p .pyenv/cache

[root@ubuntu2020 ~]#unzip pyenv-master.zip

[root@ubuntu2020 ~]# mv pyenv-master/* .pyenv/

3. 设置环境变量

[root@ubuntu2020 ~]# echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile

[root@ubuntu2020 ~]# echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile

[root@ubuntu2020 ~]# echo -e 'if command -v pyenv 1>/dev/null 2>&1; then\n eval "$(pyenv init -)"\nfi' >> ~/.bash_profile

[root@ubuntu2020 ~]# exec $SHELL

[root@ubuntu2020 ~]# source ~/.bash_profile

4. 查询可安装版本

[root@ubuntu2020 ~]# pyenv install -l

Available versions:

2.1.3

2.2.3

2.3.7

2.4.0

2.4.1

2.4.2

......

5. 安装Python3相关依赖,以便安装Python3版本

如果缺少相关依赖,会出现以下报错

WARNING: The Python readline extension was not compiled. Missing the GNU readline lib?

WARNING: The Python bz2 extension was not compiled. Missing the bzip2 lib?

WARNING: The Python sqlite3 extension was not compiled. Missing the SQLite3 lib?

ERROR: The Python ssl extension was not compiled. Missing the OpenSSL lib?

[root@ubuntu2020 ~]# yum install readline readline-devel readline-static -y

[root@ubuntu2020 ~]# yum install openssl openssl-devel openssl-static -y

[root@ubuntu2020 ~]# yum install sqlite-devel -y

[root@ubuntu2020 ~]# yum install bzip2-devel bzip2-libs -y

[root@ubuntu2020 ~]# yum install gcc gcc-c++ -y

6. 安装其他版本Python

[root@ubuntu2020 ~]# pyenv install 3.7.2

WARNING: Please make sure you remove any previous custom paths from your /root/.pydistutils.cfg file.

Installing Python-3.7.2...

Installed Python-3.7.2 to /root/.pyenv/versions/3.7.2

// 这里下载的都是使用国外的服务器,有时候下载失败,可以去官网通过代理手动下载下来

官网下载地址:https://www.python.org/downloads/source/

选则需要版本:Download XZ compressed source tarball

上传到服务器/root/.pyenv/cache目录下即可,这样安装的时候直接读取该目录

[root@ubuntu2020 ~]# cd /root/.pyenv/cache/

[root@ubuntu2020 cache]#ll

total 84404

-rw-r--r-- 1 root root 17212220 May 9 19:25 Python-3.6.10.tar.xz

-rw-r--r-- 1 root root 17049912 May 9 19:25 Python-3.6.5.tar.xz

-rw-r--r-- 1 root root 17042320 May 9 19:25 Python-3.7.2.tar.xz

-rw-r--r-- 1 root root 17246360 May 9 19:25 Python-3.7.6.tar.xz

-rw-r--r-- 1 root root 17869888 May 9 19:25 Python-3.8.2.tar.xz

[root@ubuntu2020 ~]# pyenv versions//查看已安装版本

* system (set by /root/.pyenv/version)

3.7.2

[root@ubuntu2020 ~]# pyenv local

pyenv: no local version configured for this directory

[root@ubuntu2020 ~]# pyenv local 3.7.2

[root@ubuntu2020 ~]# pyenv local// 切换当前目录指定Python版本,切换到其他目录会变成默认Python版本

3.7.2

[root@ubuntu2020 ~]# pyenv versions

system

* 3.7.2 (set by /root/.python-version)

[root@ubuntu2020 ~]# cd /workspace/

[root@ubuntu2020 workspace]# pyenv versions//其他目录还是默认Python

* system (set by /root/.pyenv/version)

3.7.2

使用global全局切换Python版本,这样不用每个目录选择版本了

[root@ubuntu2020 workspace]# cd

[root@ubuntu2020 ~]# pyenv global 3.7.2

[root@ubuntu2020 ~]# pyenv versions

system

* 3.7.2 (set by /root/.python-version)

[root@ubuntu2020 ~]# cd /workspace/

[root@ubuntu2020 workspace]#pyenv versions

system

* 3.7.2 (set by /root/.pyenv/version)

[root@ubuntu2020 workspace]#

--------------------------------------------------------------------------------------------------------------------------------

7. 创建Python虚拟环境,一般可以选择使用virtualenv或者pyenv-virtualenv,我个人喜欢virtualenv(推荐)

不推荐使用virtualenvwrapper,一般线上环境,不同的运行环境通常不会全部使用root,这种把所有虚拟环境集中放在root目录下的放式反而麻烦

安装virtualenv,个人建议不同的Python单独安装该包,这样配合使用pyenv就不用每次都创建虚拟环境指定Python版本了

[root@ubuntu2020 ~]# pip list|grep virtual

You are using pip version 18.1, however version 20.1 is available.

You should consider upgrading via the 'pip install --upgrade pip' command.

[root@ubuntu2020 ~]# pip install virtualenv

Looking in indexes: https://mirrors.aliyun.com/pypi/simple

Collecting virtualenv ...

[root@ubuntu2020 ~]# pip list|grep virtual

virtualenv 20.0.20

创建Python3虚拟环境

[root@ubuntu2020 ~]# virtualenv test

created virtual environment CPython3.7.2.final.0-64 in 319ms

creator CPython3Posix(dest=/root/test, clear=False, global=False)

seeder FromAppData(download=False, pip=latest, setuptools=latest, wheel=latest, via=copy, app_data_dir=/root/.local/share/virtualenv/seed-app-data/v1.0.1)

activators BashActivator,CShellActivator,FishActivator,PowerShellActivator,PythonActivator,XonshActivator

[root@ubuntu2020 ~]# source test/bin/activate

(test) [root@ubuntu2020 ~]# which python

/root/test/bin/python

创建Python2虚拟环境

[root@ubuntu2020 ~]#pyenv global system

[root@ubuntu2020 ~]#pyenv versions// 此时发现并没有切换回默认版本,因为之前执行过pyenv local,在当前目录生成了一个.python-history文件记录了版本

system

* 3.7.2 (set by /root/.python-version)

[root@ubuntu2020 ~]# ls -al

total 84

....

-rw------- 1 root root 7 May 9 20:06 .python_history

-rw-r--r-- 1 root root 7 May 9 20:08 .python-version

[root@ubuntu2020 ~]# pyenv local system  //切换到默认版本,然后删除该文件,以后都用 pyenv global 切换版本即可

[root@ubuntu2020 ~]# pyenv versions

* system (set by /root/.python-version)

3.7.2

[root@ubuntu2020 ~]# pip list|grep virtual  // 默认的Python已经安装了该包

DEPRECATION: Python 2.7 will reach the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 won't be maintained after that date. A future version of pip will drop support for Python 2.7.

virtualenv 20.0.20

WARNING: You are using pip version 19.1.1, however version 20.1 is available.

You should consider upgrading via the 'pip install --upgrade pip' command.

[root@ubuntu2020 ~]# virtualenv demo

created virtual environment CPython2.7.5.final.0-64 in 427ms

creator CPython2Posix(dest=/root/demo, clear=False, global=False)

seeder FromAppData(download=False, pip=latest, setuptools=latest, wheel=latest, via=copy, app_data_dir=/root/.local/share/virtualenv/seed-app-data/v1.0.1)

activators PythonActivator,CShellActivator,FishActivator,PowerShellActivator,BashActivator

--------------------------------------------------------------------------------------------------------------------------------

使用pyenv-virtualenv来管理虚拟环境

下载文件包:https://github.com/pyenv/pyenv-virtualenv

上传到服务器,解压到/root/.pyenv/plugins/pyenv-virtualenv目录

或者直接使用git拉去下来,如果网络允许的前提下

[root@ubuntu2020 ~]# yum install git

[root@ubuntu2020 ~]# git clone https://github.com/pyenv/pyenv-virtualenv.git $(pyenv root)/plugins/pyenv-virtualenv

Cloning into '/root/.pyenv/plugins/pyenv-virtualenv'...

remote: Enumerating objects: 2064, done.

remote: Total 2064 (delta 0), reused 0 (delta 0), pack-reused 2064

Receiving objects: 100% (2064/2064), 580.31 KiB | 25.00 KiB/s, done.

Resolving deltas: 100% (1413/1413), done.

设置bash shell环境变量,其他请看github说明

[root@ubuntu2020 ~]# echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.bash_profile

[root@ubuntu2020 ~]# exec $SHELL

创建不同版本寻环境,pyenv virtualenv 版本号 环境名。注意,此种放式类似virtualenvwrapper,不是很推荐(环境都安装在 /root/.pyenv/versions/ 里)

[root@ubuntu2020 ~]# pyenv virtualenv 3.7.2 py-testcreated virtual environment CPython3.7.2.final.0-64 in 158ms

creator CPython3Posix(dest=/root/.pyenv/versions/3.7.2/envs/py-test, clear=False, global=False)

seeder FromAppData(download=False, pip=latest, setuptools=latest, wheel=latest, via=copy, app_data_dir=/root/.local/share/virtualenv/seed-app-data/v1.0.1)

activators BashActivator,CShellActivator,FishActivator,PowerShellActivator,PythonActivator,XonshActivator

Looking in links: /tmp/tmpis2fllcc

Requirement already satisfied: setuptools in /root/.pyenv/versions/3.7.2/envs/py-test/lib/python3.7/site-packages (46.1.3)

Requirement already satisfied: pip in /root/.pyenv/versions/3.7.2/envs/py-test/lib/python3.7/site-packages (20.1)

[root@ubuntu2020 ~]# pyenv virtualenv system py-test-2.7

created virtual environment CPython2.7.5.final.0-64 in 206ms

creator CPython2Posix(dest=/root/.pyenv/versions/py-test-2.7, clear=False, global=False)

seeder FromAppData(download=False, pip=latest, setuptools=latest, wheel=latest, via=copy, app_data_dir=/root/.local/share/virtualenv/seed-app-data/v1.0.1)

activators PythonActivator,CShellActivator,FishActivator,PowerShellActivator,BashActivator

Installing pip from https://bootstrap.pypa.io/get-pip.py...

...

linux系统的python版本_Linux系统下多版本Python管理相关推荐

  1. linux如何查看python的版本_Linux环境下如何查看Python版本号

    原博文 2020-08-10 16:43 − 方法一.直接执行命令python,就可以查看python的版本信息. 退出用exit() 方法二.利用命令python -V,注意V要大写. 方法三.利用 ...

  2. python查找文件夹下的文件,python 查找文件夹下所有文件 实现代码 -电脑资料

    复制代码代码如下: def find_file_by_pattern(pattern='.*', base=".", circle=True): '''''查找给定文件夹下面所有 ...

  3. linux查看mysql版本_Linux系统中查看MySQL版本的五种方法

    1.在Linux终端窗口中,输入mysql -V查看MySQL版本信息[sky@qin ~]# mysql -V mysql Ver 14.14 Distrib 5.1.29-rc, for pc-l ...

  4. linux中python安装_linux环境下的python安装过程图解(含setuptools)

    这里我不想采用诸如ubuntu下的apt-get install方式进行python的安装,而是在linux下采用源码包的方式进行python的安装. 一.下载python源码包 打开ubuntu下的 ...

  5. linux下查java版本_linux如何检查Java版本

    Java是世界上最受欢迎的编程语言之一,用于构建不同类型的跨平台应用程序.本文介绍了如何使用命令行检查Linux系统上安装了Java的哪个版本.当安装需要特定版本的Java的应用程序时,这很有用. J ...

  6. update yum 到指定版本_linux yum安装指定版本mysql或php

    1.下载mysql rpm包 cd /usr/local/src wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noar ...

  7. linux 自动安装mysql数据库_linux系统下源码安装mysql5.6数据库

    linux系统下源码安装mysql5.6数据库 下载mysql数据库相关软件包(百度云盘:http://pan.baidu.com/s/1bnL31c7) 从mysql 5.5版本开始,mysql源码 ...

  8. linux svn上传目录_Linux系统下svn更新自动同步到web目录

    一.在web目录中checkout版本库 这一步算是比较关键的一步了,当时我搭建的时候试了无数次,就是缺少了这一步.把刚才checkout的版本库删掉,我们来一次比较正式的checkout: svn ...

  9. 凝思磐石linux系统怎么切双屏_linux (ubuntu) 下双屏显示解决?

    早就有心弄个显示器,把笔记本的外接上,倒不是说非要2个屏幕来工作如何如何?只是因为我的本子是14寸的屏,显卡是ati9600,而分辨率达到了1400X1050. 就这个分辨率,我看文本比较多,实在是太 ...

  10. linux 存储映射lun 给_LINUX系统下添加映射存储LUN

    LINUX系统下添加映射存储LUN(无需重启) 背景:Oracle rac环境 添加新实例,重新划分存储空间,从存储映射新的LUN. 问题:映射后,linux操作系统无法识别新的LUN,不能重启系统, ...

最新文章

  1. 京东程序员被同事吐槽:需求排期长拖黄业务,都研发的一些啥玩意
  2. Python 之vim编写python自动补全
  3. Python应用02--批量往Mysql数据库插入数据
  4. 3 SAP STMS跨服务器传请求号
  5. Leetcode刷题记录[java]——561 Array Partition I
  6. @程序员,如何轻松实现数据可视化?
  7. win11升级到一半撤销怎么办 windows11升级到一半撤销的解决方法
  8. MySQL常用命令集锦
  9. 当我讲容灾交付前,我先说点啥?
  10. Cocos2d-x 引擎概要
  11. Android11安装谷歌,Android 11正式版
  12. LeetCode Problems 903
  13. (32位汇编 九)ADC/SBB/XCHG/MOVS/STOS/REP
  14. 初学者之eclipse常用快捷键总结
  15. 阿帕网几台大型计算机网络,阿帕网-互联网的鼻祖(中) | 午夜猫
  16. css3中-moz、-ms、-webkit、 - o -各什么意思
  17. win10控制面板快捷键_你没玩过的全新版本 Win10这些操作你知多少
  18. 【转】英文论文审稿意见汇总
  19. 重启计算机关闭账户,电脑开机重启提示您的账户已被停用怎么办
  20. 解决tar (child): gzip: Cannot exec: Too many levels of symbolic links

热门文章

  1. cad角度命令怎么输入_CAD中用好这个命令,任意等分角度不再是难事
  2. 网易云音乐基于用户的推荐系统
  3. php 错误503的原因,CentOS + Apache2.4 + PHP5.6 FPM报503错误
  4. gitlab 503 错误的解决方案
  5. Keil5改黑色炫酷背景
  6. android设置透明主题后背景为黑色,android – 活动应该是透明的,但有黑色背景
  7. 我的msn的博客 欢迎大家点击
  8. 数字战疫|央视聚焦闵行,有信云助力上海数千家企业复工复产
  9. 面向对象与面向过程的理解——个人想法
  10. 月薪3千与3万文案的区别!一字千金就体现在细微之处