linux系统的python版本_Linux系统下多版本Python管理

一般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...

...

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值