- Python测试开发入门与实践
- 陈晓伍主编
- 1576字
- 2025-02-26 00:50:14
1.2.3 多版本环境安装
经过上一小节的步骤,虽然已经可以正常地使用Python 3了,但由于Linux系统下存在Python多版本共存的问题,为了更好地解决多版本的管理和安装问题,本小节将介绍一种可以管理和安装Python多版本的工具——pyenv。
pyenv不仅支持Python 2和Python 3版本的共存,还支持Python 2.6、Python 2.7、Python 3.5、Python 3.7的共存,甚至还支持CPython与PyPy、Jython、IronPython、Anaconda、ActivePython等发行版的共存。
安装pyenv的操作甚至比安装Python本身更容易,你只需要几个命令就可以完成安装。下面是安装pyenv的完整Shell命令:
git clone https://github.com/pyenv/pyenv.git ~/.pyenv echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile echo -e 'if command -v pyenv 1>/dev/null 2>&1; then\n eval "$(pyenv init -)"\nfi' >> ~/.bash_profile source ~/.bash_profile
执行完上述命令之后,直接在命令行执行如下命令:
>> pyenv -v pyenv 1.2.13-17-g38de38e
如果能正常返回pyenv的版本信息,则表示安装成功。那么接下来就可以通过pyenv来安装和管理Python的多版本了。通过pyenv -h命令可以查看pyenv的使用帮助信息,这里我们只对常用的几个命令进行介绍。
1. 安装命令install
pyenv的安装命令,除了可以安装各版本的Python,还可以查看支持安装的Python版本列表,只需在install命令之后添加-l/--list参数即可。该命令的使用方式如下:
>> pyenv install -l Available versions: 2.1.3 2.2.3 … 3.7.3 3.7.4 3.7.5 …
找到你想要安装的Python版本之后,还是通过install命令来进行安装,只需把列表中指定的版本号添加到install命令之后即可。具体方式如下:
>> pyenv install 3.7.5 Downloading Python-3.7.5.tar.xz... -> https://www.python.org/ftp/python/3.7.5/Python-3.7.5.tar.xz
通常在Linux系统中,如果安装Python所需的依赖库都存在,一般都可以安装成功。而如果在安装过程中出现失败的情况,那么很可能就是缺少依赖库的原因。在CentOS中可以通过如下命令来安装所需的依赖库:
>> yum install gcc zlib-devel bzip2 bzip2-devel readline-devel sqlite sqlite-devel openssl-devel tk-devel libffi-devel
在完成依赖库的安装之后,还需要再次执行pyenv install 3.7.5命令来重新进行安装。如果你使用的是其他版本的Linux系统或者出现别的错误,那么也可以访问相关帮助页面来查找原因和解决方案。具体地址为:https://github.com/pyenv/pyenv/wiki。
2. 版本查看命令
当你安装完成一个版本之后,就可以通过版本查看命令来查看它。pyenv提供了两个版本查看命令:一个是version,另一个是versions。
■ version命令用来查看当前上下文环境中Python的版本。
■ versions命令用来查看全部已安装的Python版本。
在Python 3.7.5安装成功且未进行版本设置的前提下,version和versions命令的使用效果如下:
>> pyenv version system (set by /root/.pyenv/version) >> pyenv versions * system (set by /root/.pyenv/version) 3.7.5
其中,system版本代表的是Linux系统默认的Python版本。从version命令的返回信息可以知道,当前命令执行的Python上下文环境是系统默认的版本;从versions命令的返回信息可以知道,当前pyenv中已经管理了两个Python版本,一个是系统默认的版本,另一个是后续安装的Python 3.7.5版本。另外,在versions命令返回的信息中,头部标*的版本也正是version命令所返回的版本。
3. 版本设置命令
通过version相关命令,我们知道pyenv默认使用系统自带的Python版本作为上下文环境。如果我们希望使用其他Python版本作为程序运行的上下文环境,则需要通过版本设置命令来切换Python的上下文环境版本。pyenv提供了3种版本设置的命令,分别适用于不同的上下文环境范围。这3个版本设置命令分别如下。
■ local——设置当前目录及子目录的Python环境版本。
■ global——设置系统全局的Python环境版本,不包括已设置local的目录和子目录。
■ shell——设置当前Shell执行环境中的Python版本,一旦退出当前Shell则失效。
下面就用一组命令的使用示例来总结pyenv版本设置的效果,默认的前提条件是已经通过pyenv安装好了Python 3.7.5版本。具体的示例脚本如下:
>> cd ~ >> python -V Python 2.7.5 >> pyenv local 3.7.5 >> python -V Python 3.7.5 >> cd /home >> python -V Python 2.7.5 >> pyenv global 3.7.5 >> python -V Python 3.7.5 >> cd /dev >> python -V Python 3.7.5
如果读者对pyenv的版本切换还有些模糊,建议直接把本小节的Shell命令全部编写一遍来加深理解。
提示
由于pyenv global命令会影响全局的Python环境版本,所以在不太了解可能会造成的影响之前,不要轻易使用该命令,以免其他程序的Python依赖版本和库被误换,导致无法正常工作。
4. 卸载命令uninstall
有安装命令自然就有卸载的命令,pyenv卸载使用的是uninstall命令。与安装Python版本的方式基本一致,直接加上版本号即可。示例脚本如下:
>> pyenv uninstall 3.7.5
当然你可能还会有另一种需求,就是卸载pyenv本身。具体的做法非常简单,就是按照安装步骤进行反向操作即可,具体的步骤如下。
■ 删除~/. bash_profile中安装时追加的3行Shell代码。
■ 删除~/.pyenv目录。