根据github上GitHub - cheng-01037/Causality-Medical-Image-Domain-Generalization: [IEEE-TMI'22] 因果关系启发的医学图像分割单源域泛化(代码和数据处理管道)

进行论文的复现工作

requirements.txt 文件中指定的库版本(如numpy==1.22.0, torch==1.3.0)都非常旧(大约是2019-2021年的版本),它们与你现在电脑上安装的、非常新的Python解释器(比如Python 3.9)以及相关的构建工具链不兼容

直接pip install不仅现在会出错,就算侥幸安装成功,也会把你的全局(base)环境搞得一团糟。pip 没有一键撤销命令。 错误操作后需要手动清理

关于虚拟环境的精炼笔记

1. 没创建虚拟环境直接pip install会有影响吗?

答:有,而且影响很大,是项目开发的大忌。

  • 污染全局环境: 你电脑上所有Python项目都共享这个唯一的“全局(base)环境”。为一个项目安装的库,可能会覆盖或破坏另一个项目需要的库版本,导致其他项目无法运行。

  • 版本冲突: 正如你遇到的问题,项目A可能需要numpy 1.22,但你的全局环境因为项目B已经装了numpy 2.0,强行降级会搞坏项目B,不降级项目A又跑不起来。

  • 项目无法复现: 当你想把项目分享给别人,或者换台电脑工作时,你无法准确知道这个项目到底依赖哪些库。因为你的全局环境里装了几百个包,哪些才是这个项目真正需要的?

2. 为什么要弄虚拟环境?(精炼解释)

核心思想:隔离 (Isolation)

虚拟环境就像是为你的每个Python项目创建了一个独立的、干净的、一次性的“专属房间”

  • 版本隔离:

    • 项目A的房间里可以装Python 3.8和torch 1.3。

    • 项目B的房间里可以装Python 3.12和torch 2.0。

    • 它们互不干扰,各自安好。

  • 依赖清晰:

    • 每个房间里只安装该项目必需的库。

    • 当项目完成时,可以一键导出这个房间里所有库的清单(pip freeze > requirements.txt),别人拿到清单就能一模一样地复制出这个房间,保证了项目的可复现性

  • 环境纯净、易于管理:

    • 避免了全局环境的臃肿和污染。

    • 如果某个项目的环境搞坏了,只需删掉这个“房间”(conda env remove -n <env_name>),然后重新建一个就行,不会影响任何其他项目。

一句话总结笔记:

虚拟环境通过为每个项目创建一个隔离的“专属房间”,解决了Python开发中最核心的“版本冲突”和“环境污染”问题,确保了项目的独立性、依赖清晰性和可复现性。

记录一次anaconda虚拟环境的使用

  1. 安装 Anaconda: 如果还没安装,请去官网下载并安装 Anaconda Distribution

  2. 创建新的虚拟环境:

    • 打开 Anaconda Prompt (从开始菜单找到)。

    • 创建一个名为 causal_dg (因果域泛化) 的新环境,并指定Python版本(例如3.8):

      codeBash
      conda create --name causal_dg python=3.8
  3. 激活虚拟环境:

    • 创建成功后,按照提示激活它:

      codeBash
      conda activate causal_dg
    • 激活后,你会看到终端提示符前面多了 (causal_dg) 的字样,表示你现在在这个独立的环境中了。

  4. 在虚拟环境中安装依赖:

    • 先用 cd 命令切换到你的项目文件夹 (同问题一的解决方案)。

    • 然后在这个虚拟环境中运行安装命令:

      codeBash   注意不要开梯子  否则会有网络问题 被切断连接
      pip install -r requirements.txt
    • 现在,所有的库都会被安装到这个 causal_dg 环境专属的文件夹里,非常干净。

  5. 以后每次运行这个项目时,都记得先打开Anaconda Prompt,然后运行 conda activate causal_dg。

Logo

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

更多推荐