删除虚拟环境后安装的包会怎样?
What will happen to packages installed when the virtual environment is deleted?
我使用以下命令创建一个新项目:
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
问题:
- 之前安装的软件包 "flask"、"kivy"、"foo" 和 "bar" 会怎样?我需要为 new_project 的虚拟环境重新安装它们吗?
- 如果我不需要重新安装这些包,那我就少了虚拟环境点?我认为虚拟环境的重点是安装在虚拟环境中的包在该环境中是隔离的。有人可以详细说明吗?
确实,pip
在 env 处于活动状态时将库安装到 virtualenv 的子目录中。那里的任何东西都独立于任何系统范围的安装,反之亦然。删除 env 显然会删除子目录中的内容。
另一方面,如果您愿意,virtualenv 可以选择回退到系统安装的软件包。删除 virtualenv 后,系统范围的安装显然仍然存在。
顺便说一句,当前的 activate
对某些内容进行了硬编码,因此您甚至无法重命名 virtualenv 目录;你必须 zap 并重新安装它。将所有需要的东西保存在 requirements.txt
或类似文件中是简化此过程以及记录依赖关系的好方法。
虚拟环境的重点是将您的开发环境与实际环境分开。不同的项目有不同的包依赖。所以对于这些情况,虚拟环境就派上用场了。
- 如果您在虚拟环境中安装了
flask
、kivy
、foo
和 bar
,那么是的,您需要在进入另一个环境时安装它们虚拟环境(这就是 Virtula 环境的全部目的)。
- 如果您发现这些软件包在全球范围内可用,那么可能是您没有正确使用它。你需要在安装任何东西之前激活你的虚拟环境,否则包将被全局安装。
对于你的情况,我可以看到你在安装包之前激活。所以它应该工作正常。您可以随时使用 pip freeze
查看安装了哪些软件包。
我使用以下命令创建一个新项目:
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
问题:
- 之前安装的软件包 "flask"、"kivy"、"foo" 和 "bar" 会怎样?我需要为 new_project 的虚拟环境重新安装它们吗?
- 如果我不需要重新安装这些包,那我就少了虚拟环境点?我认为虚拟环境的重点是安装在虚拟环境中的包在该环境中是隔离的。有人可以详细说明吗?
确实,pip
在 env 处于活动状态时将库安装到 virtualenv 的子目录中。那里的任何东西都独立于任何系统范围的安装,反之亦然。删除 env 显然会删除子目录中的内容。
另一方面,如果您愿意,virtualenv 可以选择回退到系统安装的软件包。删除 virtualenv 后,系统范围的安装显然仍然存在。
顺便说一句,当前的 activate
对某些内容进行了硬编码,因此您甚至无法重命名 virtualenv 目录;你必须 zap 并重新安装它。将所有需要的东西保存在 requirements.txt
或类似文件中是简化此过程以及记录依赖关系的好方法。
虚拟环境的重点是将您的开发环境与实际环境分开。不同的项目有不同的包依赖。所以对于这些情况,虚拟环境就派上用场了。
- 如果您在虚拟环境中安装了
flask
、kivy
、foo
和bar
,那么是的,您需要在进入另一个环境时安装它们虚拟环境(这就是 Virtula 环境的全部目的)。 - 如果您发现这些软件包在全球范围内可用,那么可能是您没有正确使用它。你需要在安装任何东西之前激活你的虚拟环境,否则包将被全局安装。
对于你的情况,我可以看到你在安装包之前激活。所以它应该工作正常。您可以随时使用 pip freeze
查看安装了哪些软件包。