一文搞定 Linux 中 Python 环境/版本管理

本文介绍了在Linux中管理Python环境和版本的方法,包括venv、python2、virtualenv、pyenv、pyenv-virtualenv和Nox。文章讨论了如何创建、激活和管理虚拟环境,以及如何处理Python2的依赖。推荐使用pyenv和相关工具来精细化管理不同Python版本,并提供了加速pyenv下载的解决方案。
摘要由CSDN通过智能技术生成

Linux 中 Python 环境/版本管理

阿菇觉得 Python 的环境/版本管理实在是依托,感觉不如 Node.js。 尤其是在 Linux 环境下,多数发行版的系统组件、工具依赖自带的 Python,折腾系统自带的 Python 环境时,一个搞不好就会把整个系统干掉。

同时,研究安全的小伙伴经常用各种工具,而很多工具又是是基于 python2 的,而当前使用的绝大多数 Linux 发行版都自带的 python3,不方便。

另一方面,我们的各种 python 项目都会有各自需要的依赖,而我们总不可能把所有需要的依赖库都直接全局安装,这很丑陋,而且很多情况下不方便项目的迁移。

流行的 python 项目/工具基本都是提供了 requirements.txt,用户需要手动本地安装。

Windows 系统中,我们可以直接使用强大的 Anaconda 管理我们的 python 环境以及版本,Linux 就不行了。 这篇文章,总结了阿菇在 python 环境/版本管理方面的经验,可供参考。

前排提示!
本篇文章使用环境:系统 Ubuntu22.04,自带 python3.10.12

请根据自己的 Linux 环境行事。 :::

py3环境管理 - venv

python3 推出了 venv 模块,python3.6 及以上已经默认安装,python3.5 需要手动安装:

sudo apt install python3-venv

venv 模块支持创建轻量级的虚拟环境,每个环境拥有它们自己安装在其 /site 目录下的 python 软件包(依赖)集合。

使用

使用以下指令可以创建一个 python 虚拟环境,python 版本与当前系统使用的 python 版本相同:

python3 -m venv env

实际效果就是在你的当前目录下创建一个名为 env 的目录,其中包括了特定的 python 解释器、软件库和二进制文件。你可以把上面指令中的 env 替换为你想要的虚拟环境名称(也就是那个目录名称),习惯上我们会将其命名为 venv 或者 .venv,通常放在项目根目录下。

需要遵守一些默认规范。python 虚拟环境是可丢弃的,也就是说,我们不会将其一并打包的项目中,我们只需要给用户提供 requirements.txt 文件,用户自己创建一个虚拟环境并安装所需依赖。开发者不应该把任何项目代码放到虚拟环境目录中。同时,我们也不会移动虚拟环境,哪里需要就在哪里创建。

创建好虚拟环境后,它只是一个放在那儿的目录,需要手动激活。

假设你是在当前目录下创建了名为 venv 的虚拟环境,你使用以下指令将这个虚拟环境激活:

source ./venv/bin/active

然后你可以发现命令行中标志出当前命令行使用了虚拟环境,虚拟环境名称默认与当前项目名称相同。

20231102001458

图中是 zsh,配置了 oh-my-zsh,应用了 powerlevel10K 主题,通过 tabby 模拟终端工具 使用,是一个非常 nice 的组合,可以试试看!

此时使用 pip --version 会提示用户使用的是虚拟环境中的 pip 包管理工具。激活虚拟环境后我们就可以在这里面肆意安装我们需要的各种依赖了,虚拟环境与外界是隔离的,你可以想象成虚拟机,一般不会影响到系统本身。

使用完虚拟环境后,执行以下指令关闭虚拟环境:

deactivate

进一步

就是如此的干净清爽,我们只需用系统自带的 python 创建虚拟环境即可,之后的一切依赖都放在各自的虚拟环境中,不用把自己系统的 python 软件包搞得一团糟。

阿菇的建议是:不要在自己的系统中安装任何额外的 pyt

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值