一、什么是 Conda 虚拟环境

打个比方:虚拟环境就像是一个个“独立的毛坯房”。

假设你的电脑(C盘或D盘)是一个大别墅,你装好 Anaconda 后,默认给你分配了一个最大的房间叫 base(基础环境)。
如果你不做任何操作,你买的所有家具(安装的 Python 包,比如 numpy、pandas、langchain)都会堆在这个 base 房间里。

问题来了:

  • 你今天要做项目 A,需要 工具包 1.0 版本。

  • 明天你要做项目 B,需要 工具包 2.0 版本(跟 1.0 不兼容)。

  • 如果你都在 base 里装,这俩就会打架,最后导致项目 A 或 B 跑不起来,甚至把环境搞坏,连 conda 命令都用不了。

虚拟环境的解决办法:
你在别墅里重新开辟出一个个全新的、完全空白的房间:

  • 给项目 A 建一个房间叫 env_A,里面只装 Python 3.9 和 工具包 1.0。

  • 给项目 B 建一个房间叫 env_B,里面只装 Python 3.11 和 工具包 2.0。

这两个房间互不干扰,里面的东西随便你怎么折腾,都不会影响别墅里的其他地方。你刚才建的 RAG 环境,就是你给这个 RAG 项目专门开辟的一个独立房间。

二、什么时候需要新建一个虚拟环境

核心原则:一个独立项目 = 一个虚拟环境。

具体来说,遇到以下情况,强烈建议新建一个虚拟环境:

  1. 开始一个新项目时(最常见)
    就像做一个项目,它需要用到很多相关的库。这些库更新极快,且互相依赖复杂。新建一个专门的环境,可以保证这个项目用到的最稳定的版本组合。

  2. 项目的 Python 版本要求不同时
    比如你旧项目是用 Python 3.8 写的(很多老库不支持新版本),但你新项目想用最新的 Python 3.12(像你刚才建的),这时候必须建新环境隔离。

  3. 测试新包、新代码时
    如果你想试用一个不知道安不安全的开源包,或者测试一段新代码,千万别装到 base 里,建个临时环境随便测,测完直接 conda remove -n 临时环境名 --all 删掉,干干净净。

  4. 接手别人的项目或开源代码时
    别人通常会给一个 requirements.txt 文件。你最好建个新环境来安装这些依赖,防止把你原本电脑里能跑通的代码环境给污染了。

三、建议

  1. 永远不要把工作项目跑在 base 环境里。base 环境只用来安装一些基础工具(比如 conda 本身,或者 Jupyter notebook),平时不要往里 pip install 任何业务代码需要的包。

  2. 项目建完了,环境可以随便删。如果你觉得 D 盘空间不够了,可以直接在终端运行 conda env list 查看所有环境,然后用 conda remove -n 环境名 --all 把不要的环境彻底删除,释放空间。

  3. 离开项目时记得把环境记下来。如果你写好了代码,想要发给同事,记得运行 pip freeze > requirements.txt,把当前环境的包和版本导出来。同事拿到这个文件后,建个新环境,运行 pip install -r requirements.txt,就能完美复现你的运行环境。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐