检测Python是否在Conda环境中运行

检测Python是否在Conda环境中运行,python,environment-variables,conda,Python,Environment Variables,Conda,是否可以检测Python是否在Conda环境中运行 我更喜欢不依赖于在子流程中运行shell命令的解决方案,但如果这是唯一的选择,那就这样吧。我假设有一些简单的东西,比如在环境中设置的环境变量,但是这种东西很难搜索(而且Conda文档也不太好)。使用 import sys, os is_conda = os.path.exists(os.path.join(sys.prefix, 'conda-meta')) 经过一些测试,您似乎可以使用Conda_DEFAULT_ENV和Conda_PREF

是否可以检测Python是否在Conda环境中运行

我更喜欢不依赖于在子流程中运行shell命令的解决方案,但如果这是唯一的选择,那就这样吧。我假设有一些简单的东西,比如在环境中设置的环境变量,但是这种东西很难搜索(而且Conda文档也不太好)。

使用

import sys, os
is_conda = os.path.exists(os.path.join(sys.prefix, 'conda-meta'))

经过一些测试,您似乎可以使用
Conda_DEFAULT_ENV
Conda_PREFIX
环境变量检测Conda的使用情况。仅当Conda环境处于活动状态时,才会显示这些设置


我将尝试从Conda团队获得“官方”答案并进行更新。

您知道这种方法在不同版本中是否稳定吗?或者这更像是黑客行为?你是说康达版本?是的。(忽略这部分-我还需要10个字符)我还没有在不同的版本上测试过它。只有我的。对于3.5.2,它起了作用。我在某个地方读到,将路径与历史目录连接起来,就像这样,is_conda=os.path.exists(os.path.join(sys.prefix,'conda meta,'history'))工作得更好。@shadowtalker你测试过这个吗?你为什么问这个?为什么Anaconda版本的python比macOS上的自制版本更特别,而不是macOS本机版本?或者是用户通过Anaconda以外的某种机制安装到主目录中的python版本?@KurtisRader我正在一台依赖于Conda的服务器上自动化一些事情,而python中的自动化碰巧比Bash中的要容易。