需求

  • pip安装的版本会在全局环境下生效,导致不用的项目使用的是同一套环境,容易出现别人的项目跑的好好的,到了自己电脑就不能跑的问题
  • 需求
    • 1.不同的项目可以设置不同的环境,同时支持自动切换环境
    • 2.便捷,轻量化管理当前的环境
      • 如果可以,最好有一个可视化的平台,anaconda倒是支持图形化管理,但是不轻量,mini
    • 3.目前是window,就写了window平台使用,其他平台操作也应该大同小异

调研

  • Anaconda
    • Anaconda是一个包含了大量数据科学和机器学习相关包的 Python 发行版。它附带了 conda包和环境管理工具、许多预安装的库和工具,以及图形界面的 Anaconda Navigator。
  • miniconda
    • Miniconda 是一个较小的 Python 发行版,它包括 conda 工具和Python 解释器,所以更像是Anaconda 的阉割版。相较于Anaconda,Miniconda 体积小了很多,占用磁盘空间少了很多,对于我们一般的开发者足够用了。

miniconda安装并在pycharm配置

  • 如果没有打钩,自己在环境变量配置下即可

  • 安装完成,查看有的环境

  • 我们添加下环境

  • 可以看到,目前这个项目使用的是全局的环境,也就是base环境

  • 我们更换为conda环境,这里通过pycharm创建一个环境名称为project20241012RunEnv的运行环境

  • 等待一会,在下载一些基础库,为什么知道,因为下载失败了开着代理,哈哈哈

  • 创建完成

  • 我们cmd输入conda env list ,查看下环境
    • 可以看到我们建立的环境在下面

  • 对比之前,我们可以看到,新建立的环境库很少对比之前
  • 之前

  • 现在

  • 我们在终端也可以看到环境前缀

  • cmd中也可以使用conda activate 环境名 切换环境

安装依赖在新环境

  • miniconda中默认自带一个名为conda的包管理工具,和pip工具有异曲同工之处,并且miniconda中也自带pip。conda主要用于管理虚拟环境的,虽然也能安装依赖,但还是推荐pip。
  • 我们看下新环境依赖

  • 我们随便安装一个
  • 出现**WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by ‘SSLError(SSLZeroReturnError(6, ‘TLS/SSL connection has been closed (EOF) (_ssl.c:1149)’))’: /simple/torch/ **把代理关闭下

  • 随便安装一个库,看看有没有隔离
    • pip install test-test

  • 安装成功

  • 我们在project20241012安装了依赖库test-test,我们切换到其他环境或者不在任何一个环境下(最原始的)看看能不能查找到,可以看到,并没有出现依赖test-test

特别注意

  • 如果在安装conda之前就安装了一些依赖,好像是会影响现有的环境的,比如我在原始环境安装了scrapy,然后切换到新环境输入scrapy也会识别,原始环境卸载scrapy后,新环境也无法运行scrapy了

参考文章