【问题标题】:Detect if Python is running in a Conda environment检测 Python 是否在 Conda 环境中运行
【发布时间】:2018-12-18 09:31:36
【问题描述】:

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

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

【问题讨论】:

  • 你为什么要问这个?为什么 Python 的 Anaconda 版本比 HomeBrew 在 macOS 上安装的版本比 macOS 原生版本更特别?还是用户通过 Anaconda 以外的某种机制安装到其主目录中的 python 版本?
  • @KurtisRader 我在依赖于 Conda 的工作服务器上自动化了一些事情,而且在 Python 中比在 Bash 中更容易。

标签: python environment-variables conda


【解决方案1】:

使用

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

【讨论】:

  • 你知道这种方法跨版本是否稳定?还是这更像是一种黑客行为?
  • 你的意思是 conda 版本?
  • 是的。 (忽略这部分 - 我还需要 10 个字符)
  • 我没有在不同版本上测试过。只在我的。对于 3.5.2,它有效。我在某处读到这样的历史目录连接路径 is_conda = os.path.exists(os.path.join(sys.prefix, 'conda-meta', 'history')) 效果更好不过。
  • @shadowtalker 你测试过这个吗?
【解决方案2】:

经过一些测试,您似乎可以使用 CONDA_DEFAULT_ENVCONDA_PREFIX 环境变量检测 Conda 的使用情况。这些似乎只在 Conda 环境处于活动状态时设置。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-07-21
    • 2018-12-11
    • 2017-07-28
    • 2020-10-01
    • 1970-01-01
    • 2019-09-10
    • 1970-01-01
    • 2020-07-02
    相关资源
    最近更新 更多