附001.Python多版本环境管理

一 环境背景

由于Python的版本过多,且不同版本之间差异性较大。同时又因系统底层需要调用当前版本Python,所以不能随意变更当前系统Python版本。因此,在多版本共存的情况下,Python多环境管理工具非常重要,常见Python多环境管理工具有Pyenv和Virtualenv。

Pyenv对Python的版本进行管理,实现不通版本间的切换和使用;

Virtualenv通过创建虚拟环境,实现与系统环境以及其他Python环境的隔离。

二 pyenv部署与使用

pyenv是一个Python版本管理工具,可方便地切换全局Python版本,安装多个不通的Python版本,设置独立的某个文件夹或工程目录特意的Python版本,同时创建Python虚拟环境。

注意:该工具不支持Windows。

  1. Shell变量设置(执行pyenv shell查看)
  2. 当前可执行文件目录下的.python_version文件里的版本号(执行pyenv shell查看)
  3. 上层目录查询找到的第一次.pyenv-version文件
  4. 全局的版本号在~/.pyenv/version文件内(执行pyenv shell查看)

提示:执行命令pyenv versions可查看系统当前安装的Python版本。

python优先级:shell > local > global

pyenv 会从当前目录开始向上逐级查找.python-version文件,直到根目录为止。若找不到,就用global版本。

提示:手动安装和自动挡安装任选其一即可。

自动安装可能出现环境变量未添加的情况,可参考手动安装进行添加。

切换当前目录的Python版本,通过将版本号写入当前目录下的.python-version文件的方式。通过这种方式设置的 Python版本优先级较global高。

设置全局的Python版本,通过将版本号写入~/.pyenv/version文件的方式。

2.5 pyenv常见参数

常用命令

参考链接:https://github.com/pyenv/pyenv#installation

三 Virtualenv部署与使用

Virtualenv试试一个用来为一个应用创建一套”隔离”的Python运行环境,使得每个应用拥有一套”独立”的Python运行环境。Virtualenv通过创建一个虚拟化的python运行环境,将我们所需的依赖安装进去的,不同项目之间相互不干扰。特点:

  • 在没有权限的情况下安装新套件
  • 不同应用可以使用不同的套件版本
  • 套件升级不影响其他应用

提示:pip的安装参考《001.Pip简介及使用》,也可使用以下方式安装:

提示:

virtualenv venv将会在当前的目录中创建一个文件夹,包含了Python可执行文件,以及pip库的一份拷贝,这样就能安装其他包了。虚拟环境的名字(此例中是 venv )可以是任意的,若省略名字将会把文件均放在当前目录。

在任何你运行命令的目录中,这会创建Python的拷贝,并将之放在叫做 venv 的文件中。

3.3 virtualenv常见参数

四 update-alternatives部署与使用

update-alternatives是用来维护系统命令的符号链接,以决定系统默认使用什么命令,可以设置系统默认加载的首选程序。即用于处理linux系统中软件版本的切换。

各个linux发行版中均提供了该命令,可免安装直接使用,命令参数略有差异,本实验以CentOS7.8为基础。

注意:alternatives是update-alternatives的软链接,后续直接使用alternatives。

display:display选项用来显示一个命令链接的所有可选命令,即查看一个命令链接组的所有信息,包括链接的模式(自动还是手动)、链接priority值、所有可 用的链接命令等等。

install:install选项的功能就是增加一组新的系统命令链接符。

使用语法为:update-alternatives –install

config:config选项用来显示和修改实际指向的候选命令,为在现有的命令链接选择一个作为系统默认。

remove:remove选项的功能是删除一个命令的link值,其附带的slave也将一起删除。

使用语法为:update-alternatives –remove name path。其中name与path与install中的一致,如果所删除的链接组中还有其他链接的话,系统将会自动从其他中选择一个priority高的链接作为默认为链接。

比如:update-alternatives –remove java /usr/lib/jvm/jre1.6.0_20/bin/java

Original: https://www.cnblogs.com/itzgr/p/16324135.html
Author: 木二
Title: 附001.Python多版本环境管理

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/583430/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球