pycharm中使用virtualenv 和 conda 创建虚拟环境的区别

创建虚拟环境的本质:在计算机上创建一个新的目录。该目录中包含一个独立的 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 是一个独立的环境管理工具,需要单独安装。

  • 29
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值