python虚拟环境

本文最后更新于:2025年11月19日 下午

在升级Ubuntu 24.04之后,python pip安装包就开始报错了(error: externally-managed-environment)。问题的原因在于ubuntu 24.04对python的环境进行了强制管控。不让用户随便搞了。

为什么需要虚拟环境

解决项目依赖特定版本库的问题。
比如项目A依赖库X的1.0版本,但是项目B又是根据X库的2.0版本开发的。两个版本的X库不兼容,项目A运行,项目B就不能运行。
要想同时开发这两个项目,要么让他们二者使用相同的版本库,要么使用虚拟环境。

有了虚拟环境,这些就都不是问题了。

安装虚拟环境

1
sudo apt install python3-venv 

激活虚拟环境

(1)进入项目目录
(2)先创建一个虚拟环境

1
python -m venv .venv

最后一个参数.venv是虚拟环境的名字,可以随意命名,它会在当前目录创建这么一个文件夹,存放虚拟环境所需的文件
(3)激活虚拟环境

1
source .venv/bin/activate

激活之后看到终端的前面会带这个名字,如:

1
(.venv) leon-ssd $

虚拟环境中一个库也不会安装,你使用pip list可以看到是空的

虚拟环境中安装库

直接使用pip命令安装即可,都会安装到虚拟环境这个目录里面。

导出当前项目的依赖库

虚拟环境安装完项目所需的库后,可以使用如下命令,导出项目所依赖的库列表。

1
pip freeze > requirements.txt

我们并不需要在代码库中包含虚拟环境,只需要上传这个库列表文件即可。
在另一台电脑上,激活虚拟环境后,可以使用如下命令,很方便的安装

1
pip install -r requirements.txt

退出当前虚拟环境

运行如下命令即可。

1
deactivate

不想用虚拟环境?

说了这么多,要是你还是不喜欢使用虚拟环境。你也不开发东西。只是用别人的脚本或者程序。怎么办呢?

虚拟环境是为了解决库版本冲突和安装管理问题,不想用就得面临这些问题!

不想破坏系统级的python环境,如下一些做法是稳妥的。
(1)使用apt安装python库,如安装requests库

1
sudo apt install python3-requests

如果apt没有这个库,那还是没有版本。
(2)使用pipx安装python应用。pipx不需要root权限,它为安装的应用都创建了虚拟环境。
第一步想安装pipx

1
2
sudo apt install pipx
pipx ensurepath

退出终端,重新打开使其生效。
第二步安装应用,如:

1
2
pipx install ruff 
ruff --help

注意:pipx只是用于安装应用

参考:
# 如何在 Python 中创建一个虚拟环境,以及为什么需要它


人生苦短,远离bug Leon, 2024-11-13

python虚拟环境
https://leon0625.github.io/2024/11/13/e7c664ef15e0/
作者
leon.liu
发布于
2024年11月13日
许可协议