【toolschain】关于anaconda安装包时候 系统级全局安装还是安装在虚拟环境里的问题总结

关于安装方式决定所被安装环境的问题

借机会研究了一下 关于处在anaconda虚拟环境下的 安装方式的不同 安装路径不同的问题,并总结如下原则:

  • conda 无法管理或者conda库查不到的,自然只能通过其他方式安装,那么路径就不在虚拟环境下 比如显卡驱动
  • 在conda环境下 但是不用conda安装 用yam apt-get src编译再install等也会是全局的
  • 为了使用隔离环境,常出现多版本的东西最好都使用conda安装,比如复现一个使用特定版本库的论文
  • 当在 Conda 环境中工作时,为了避免冲突和不一致,建议尽可能使用 Conda 环境中的软件包 (可以在编译或者运行时候手动指定路径或者使用的版本,具体方法请再自上网查)
  • 如果发现 Conda 环境中的软件包与系统级别的软件包存在冲突,可以考虑创建一个干净的新 Conda 环境,仅包含所需的软件包,以避免冲突
  • pip 要注意 pip使用的是系统下pip还是conda下 可以通过 which来确认一下

如果全局和虚拟环境里有多版本

取决于环境变量配置的问题,也就类似与ros当前激活工作空间,默认选取bashrc中的最后一个。
但是gpt说正好相反:对于可执行文件(如命令行工具),通常优先使用在 PATH 环境变量中最先出现的版本。当你激活一个 Conda 环境时,Conda 会调整 PATH 使得环境内的路径优先于系统路径。

GPT问答环节

我与gpt问答扩展了一些场景和细节如下:

Q conda list 命令 显示全局的库的信息吗

A: 当你运行 conda list 命令时,它通常只显示在当前 Conda 环境中安装的软件包,不包括系统级别的安装。
如果想查看系统级别安装的软件包,你需要使用系统自身的包管理工具,例如,在 Ubuntu 上使用 apt list --installed,或者在 Python 中使用 pip list 来查看通过 pip 全局安装的包。

Q 总结一下 必须用conda命令安装,才是在conda环境下,否则即使处于conda某个环境下的安装也是系统全局可见的安装对吗

A 基本上是的,Conda 的环境隔离是由它的命令行工具和软件包管理系统来管理的。若要确保安装在特定的 Conda 环境中,最好使用 Conda 提供的命令安装软件包。

Conda 安装:使用 conda install 命令安装的软件包会被放置在当前激活的 Conda 环境中。这些软件包只在该环境下可见和可用。

非 Conda 安装:如果您通过其他方式,比如 pip install、系统包管理器(如 apt-get、yum)、手动编译安装等方式安装软件包,即使在某个 Conda 环境激活的情况下,这些安装也会成为系统全局可见的,而不是与 Conda 环境相关联。