首页 > 解决方案 > 删除虚拟环境后安装的软件包会怎样?

问题描述

我使用以下命令创建了一个新项目:

mkdir ~/my_project
python -m venv ~/my_project
source ~/my_project/Scripts/activate
pip install flask
pip install kivy
pip install foo
pip install bar

假设我决定删除 my_project 并创建一个新项目:

rm -rf ~/my_project
mkdir ~/new_project
python -m venv ~/new_project
source ~/Scripts/activate

问题:

标签: pythonpython-3.xpython-venv

解决方案


实际上,pip当 env 处于活动状态时,会将库安装到 virtualenv 的子目录中。其中的任何内容都独立于任何系统范围的安装,反之亦然。删除 env 显然会删除子目录中的内容。

另一方面,如果您允许,virtualenv 可以选择回退到系统安装的软件包。删除 virtualenv 后,系统范围的安装显然仍然存在。

顺便说一句,当前activate对一些东西进行了硬编码,因此您甚至无法重命名 virtualenv 目录;你必须zap并重新安装它。将它需要的所有东西保存在一个requirements.txt或类似的文件中是简化此过程以及记录依赖关系的好方法。


推荐阅读