概要
在开发Python程序的时候,有时候可能需要在不同版本的Python上进行测试。pyenv就是这么一个管理多版本Python的工具。由于在Windows中我们可以同时安装多个版本的Python,所以这里是在Linux下介绍该工具。
环境
python3.6.4
CentOS Linux release 7.7.1908
linux安装pyenv
- 查看python版本:
python -V
,若python版本3.x,则不需要准备python3.6.4环境。 - 执行
pyenv versions
命令查看服务器是否安装pyenv,如果未安装,则执行第二步操作,安装pyenv。
pyenv是Python版本管理器,可以实现Python的多版本共存。
执行pyenv versions后,如果返回只有system,则代表未安装pyenv。
- linux安装pyenv:执行命令
curl -L https://github.com/pyenv/pyenv-installer/raw/master/bin/pyenv-installer | bash
返回:
[appuser@spython ~]$ curl -L https://github.com/pyenv/pyenv-installer/raw/master/bin/pyenv-installer | bash
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 148 100 148 0 0 103 0 0:00:01 0:00:01 --:--:-- 103
100 2188 100 2188 0 0 1098 0 0:00:01 0:00:01 --:--:-- 2136k
...省略...
WARNING: seems you still have not added 'pyenv' to the load path.
# Load pyenv automatically by adding
# the following to ~/.bashrc:
# 下一步配置环境变量会使用到!!!
export PATH="/home/appuser/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
报错:pyenv: Git is not installed, can’t continue 解决: yum install git
配置用户环境变量
- 将安装pyenv后返回信息的最后三行添加至用户环境变量,执行
vi ~/.bash_profile
# 新增环境变量
export PATH="/home/appuser/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
- 新增完成,保存退出,执行
source ~/.bash_profile
安装gcc pip setuptools
yum -y install gcc-c++ python-devel python2-pip
pip install -U pip
pip install -U setuptools
解决yum安装报错Protected multilib versions
yum install -y zlib zlib-devel --setopt=protected_multilib=false
安装openssl openssl-devel
yum install openssl openssl-devel
如果没下载这个会报错
The Python ssl extension was not compiled. Missing the OpenSSL lib?
离线安装
下载相应的安装包地址忘了可以用一下方法查
pyenv install -v 3.6.4
# 会卡住但是会出现一个下载地址
在python用户的./python/.pyenv目录下新建cache目录,然后复制下载好的python版本的安装包到cache目录下
安装python3.6.4
- 查看可以安装的python版本:
pyenv install -list
- 安装python3.6.4:
pyenv install -v 3.6.4
- 查看python版本:
pyenv versions
正常返回:
[appuser@spython ~]$ pyenv versions
system
* 3.6.4 (set by /home/appuser/.pyenv/version)
- 查看当前使用的版本:
pyenv version
(system 代表当前系统的python 版本) - 切换python版本
pyenv global 3.6.4
卸载python3.6.4:
pyenv uninstall -f 3.6.4