当前位置:   article > 正文

Pycharm配置环境选择解释器时各个选项的含义(Project venv,Base conda, Custom environment) (Generate new/Select existing)_inherit packages from base

inherit packages from base

从网上搜集的资料整理的,如有错误,敬请指正。

首先我做了如下这个图,大致解释了各个选项及其之后的分支都是什么意思,详细部分请看下文

背景知识

  • 什么是python解释器?

    • 是一个程序,将python代码转换为计算机能理解的机器语言,使得计算机能够运行这些代码

    • 在系统中安装python后,python解释器的路径如下: "E:\software\code software\python\pythonSetup\python.exe"(划下划线的部分每个人的安装路径不同)

    • 该python解释器对应的全局软件包的文件夹的路径为:
      "E:\software\code software\python\pythonSetup\Lib\site-packages" 里面存放了系统python所安装的一些包。
      此时的python解释器是系统解释器,因为直接安装在系统中,如果为项目创建了虚拟环境后,虚拟环境中也存在解释器。比如项目“chipnetwork”中虚拟环境的解释器路径为: "E:\data\code\python project\chipNetwork\venv\Scripts\python.exe"

  • 为什么要创建虚拟环境?

    • 通常我们使用python要创建多个项目以解决不同的问题,比如项目1用于图像处理、项目2用于语音识别等,而各个项目所需要使用的python版本和所依赖的软件包不同,项目1可能会需要python3.6, pandas2.0 而项目2可能会需要 python3.7, pandas2.2 。如果两个项目都使用系统安装的解释器和系统中的全局依赖包,那么应该用每次要换一个项目的时候,依赖包都需要卸载重新安装相对应的版本,这样太过麻烦,不好管理。

    • 所以就需要为每个项目创建一个虚拟环境,各个虚拟环境相互隔离,你装你的包,我装我的包,互不影响,便于管理,提高效率,比如为项目1创建一个环境1,为项目2创建一个环境2,自己装自己的包。

  • 如何创建虚拟环境?

    • 虚拟环境与依赖包的管理较为麻烦,所以一些环境管理工具和包管理工具应运而生,环境管理工具有venv, virtualenv, conda(同时是包管理工具), Pipenv, Poetry等,用于创建与管理虚拟环境。

    • 为某项目创建一个虚拟环境后,该项目文件夹中会出现一个.venv文件夹,代表该项目的虚拟环境,.venv文件夹中包含该虚拟环境的解释器和一些依赖包。(一般都是基于系统解释器(安装在系统中的python)为某个项目创建一个新的虚拟环境,这个过程简单来说就是将安装在系统中的python.exe复制一份到项目的.venv\Script文件夹中,并创建一些其他必要的文件)

    • 下图是分别基于系统python解释器创建两个项目的示意图,后文会有详细解释:

    • .venv\Lib\site-packages文件夹中存放的是依赖包,一般刚创建的新环境只有两三个依赖包,除非选择继承系统解释器的全局依赖包

    • ".venv\Scripts\python.exe"路径下是该虚拟环境的python解释器

    • 在pycharm中创建新项目时可以为项目创建一个虚拟环境,如下图

Pycharm中创建新项目时,选择解释器的一些选项是什么意思?

下图展示了在选择解释器的时候的一些选项分支和大致解释:

Project venv

  • 根据选择的python基础解释器,在当前项目文件夹快速创建一个新的、不包含其他依赖包的虚拟环境(.venv)

Base conda

  • Pycharm将conda base环境配置为项目解释器

Custom environment

  • Genrate new

    • 用virtualenv基于python解释器新建一个虚拟环境,

    • 选择python解释器,可以是系统的,也可以是其他项目的.venv中的

    • 选择Location,为该项目的.venv文件夹存放路径

    • inherit packages from base interpreter:是否继承全局软件包,勾选后,如果选择的解释器是系统解释器,则会继承解释器“site-packages”文件夹下的全局软件包。

    • Make available to all projects:勾选后,在选择existing environment或者设置中配置解释器的时候会显示出该项目虚拟环境的路径,要不得自己去找路径。(勾不勾选该环境都可以被其他项目所使用,就是勾选后会显示路径)

    • 其他三个环境(包)管理工具conda, Pipenv, Poetry,其他三选项是分别使用这三个工具创建环境,virtualenv也是一个环境管理工具,一般小项目用virtualenv即可

  • select existing

    • 选择已经存在的环境,在当前项目中不会新建.venv文件,与其他项目共享一个环境(包括解释器和软件包)

    • python:选择已经存在的python环境,比如其他项目中的python环境

    • conda:已经存在的conda环境

项目创建示意图如下图所示:

上图的解释:项目1

项目1基于系统python解释器创建一个新的环境,会在项目1中新建一个.venv文件夹,并将系统python解释器复制到项目1中,如果创建时勾选了inherit packages from base interpreter,则也会复制系统解释器的一些全局依赖包。

项目2

项目2同样基于系统python解释器创建一个新的环境,创建完成后,项目2可以在自己的虚拟环境中按需安装自己需要的包,并不会影响到其他项目。

项目3

项目3创建时选择existing env 然后选择 python ,选择系统解释器,这时候项目3会直接使用系统解释器的环境和相应的依赖包,并不会在项目文件夹下新建.venv文件夹且复制解释器。项目3对依赖包的更改就是对系统解释器的依赖包的更改。

项目4

项目4创建时选择existing env 然后选择项目2的环境,这时项目4会直接使用项目2的环境,也不会在项目文件夹下新建.venv文件夹且复制解释器。项目4对依赖包的更改就是对项目2的依赖包的更改。

未完待续......

参考资料

【Python】环境管理 venv、pipenv、conda、poetry 对比_pipenv和conda区别-CSDN博客

Pycharm 中 virtualenv、pipenv、conda 虚拟环境的用法_pycharm virtualenv和conda-CSDN博客

一文解读 virtualenv & venv & pipenv 之间的联系与区别I'm George的博客-CSDN博客pipenv virtualenv

Python环境管理大比拼:pip、Conda、Pyenv、Rye、Virtualenv、PDM、Poetry等工具_python哪个虚拟环境工具好用-CSDN博客

全网最最最详细的virtualenv的使用命令详解_virtualenv命令-CSDN博客

pycharm中 Make available to all projects的含义-CSDN博客

关于勾选“Make availabel to all projects”-慕课网

An unbiased evaluation of environment management and packaging tools

www.jetbrains.com

2024pycharm解释器配置和快捷键(持续更新)-CSDN博客

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/木道寻08/article/detail/991713
推荐阅读
相关标签
  

闽ICP备14008679号