创建虚拟环境的本质:在计算机上创建一个新的目录。该目录中包含一个独立的 Python 解释器和相关的库。这个目录可以看作是一个隔离的环境,与其他Python环境和系统环境相互独立。
激活虚拟环境的本质:在命令行终端中更改一些环境变量,将当前的Python解释器和库路径指向虚拟环境。这意味着在激活虚拟环境后,使用的是虚拟环境中的Python解释器和库,而不是系统默认的Python环境。
简单理解:虚拟环境提供了一种将特定的 Python 版本和包版本打包在一起,并与其他项目隔离的方法,以确保项目的依赖项和环境配置的独立性和可重复性。
区别:
1 .virtualenv 创建的虚拟环境相对较轻量,独立于具体包管理工具(如pip),Conda 本身就是一个包管理工具(也能创建和管理虚拟环境)。
2. 在创建虚拟环境时,virtualenv 复制现有的python解释器(需提前安装),而 Conda随环境下载和安装的指定版本python解释器,与系统中的全局解释器独立。
** 补充:**pip适用于简单的Python包管理,在PyPI上获取包,易于使用和轻量;而conda适用于跨平台、语言和复杂依赖关系的管理,具有强大的依赖项解析能力,但可能需要更多的资源开销。
window下pycharm操作举例说明(下载三方包的时候需要激活环境,或者手动安装到环境中的site-packages文件夹中):
一、virtualenv 创建虚拟环境
新建一个python项目(项目名称为pydemo),位于D盘的PyCharm_Code文件夹中。
默认虚拟环境的名称为venv(可更改名称和位置)
打开项目文件,其中venv就是虚拟环境根目录。(删除 venv文件夹通常可以直接删除虚拟环境)
其中, idea 文件夹是在项目自动生成,包含了项目的配置信息和IDE相关的设置。
虚拟环境中通常包含下列的子文件和子文件夹,实际上可能会根据不同的工具和配置而有所变化。
Lib 文件夹:包含了虚拟环境所使用的 Python库和模块。含 Python 标准库和三方库。
Scripts(Windows):存放虚拟环境中的可执行文件(如 Python解释器、pip 等)。
.gitignore文件: 为虚拟环境配置文件,用于指定 Git 版本控制系统忽略特定文件和文件夹的。
pyvenv.cfg 文件:为虚拟环境的配置文件,其中包含有关虚拟环境的元数据和设置。
二、 conda 创建虚拟环境
新建一个python项目(项目名称为pydemo1),位于D盘的PyCharm_Code文件夹中。
默认虚拟环境的名称为项目名称pydemo1(可更改名称和位置)
在 Windows 系统上,可以通过运行 conda.exe 来使用 Conda 命令行工具。在 macOS 和 Linux 系统上,可以通过运行 conda 命令来使用 Conda。
为了方便对比,改了默认位置和名称:
可见,使用conda创建的虚拟环境的目录结构更为复杂,这是因为conda在创建虚拟环境时会考虑更多的功能和用途,以满足包管理和环境隔离的需求。
bin 文件夹(在Unix/Linux系统中)或 Scripts 文件夹(在Windows系统中):与venv创建的虚拟环境中的可执行文件类似,包含Python解释器和其他命令。
lib 文件夹:存放虚拟环境中的Python库和模块。
include 文件夹:包含虚拟环境中的头文件,用于编译和构建扩展模块。
conda-meta 文件夹:存放与虚拟环境相关的元数据文件,如包的列表、版本和依赖关系等信息。
pkgs 文件夹:用于存放已安装的包文件。
envs 文件夹:用于存放不同环境的子目录。
此外,conda还可以为虚拟环境提供其他功能,如支持不同的Python版本、管理依赖项和环境变量等。这些额外的功能可能导致虚拟环境目录结构更为复杂。
三、总结:当需要创建虚拟环境时,可按照以下总结来选择是使用 venv(即virtualenv) 还是 conda
使用 venv 创建虚拟环境:
轻量级项目
简单的依赖关系
仅依赖于Python标准库和纯Python库
不需要复杂的依赖管理功能
希望使用Python内置的虚拟环境创建工具
使用 conda 创建虚拟环境:
复杂的依赖关系
涉及系统级依赖项、科学计算库或其他第三方库
需要强大的依赖管理功能
跨平台支持
需要额外的功能,如环境复制、版本管理和包缓存等
这些是一般情况下的建议,您可以根据项目的具体需求和个人偏好做出选择。此外,venv 是Python 3版本内置的标准库,而 conda 是一个独立的环境管理工具,需要单独安装。
版权归原作者 D小白白° 所有, 如有侵权,请联系我们删除。