我正在分发一个内部 python 库,我想在其中制作它,以便如果用户在运行此文件时使用 anaconda,则将自动更新库的依赖项。(这是根据要求。如果由我决定,我会让用户控制他们自己的包。)
到目前为止,我想出了类似的东西
def _user_has_conda():
cmd = 'conda --help'
p = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
out, err = p.communicate()
if len(out) > 0 and len(err) == 0:
return True
else:
return False
但这实际上只告诉我用户是否在他们的系统上安装了 anaconda,而不是当前的 python 进程是否在 anaconda 环境中运行。
我注意到,当我启动 python 或 ipython shell 时,我看到“Python 3.3.3 |Continuum Analytics, Inc|” 在顶部。我的下一个想法是尝试找到如何获取此字符串以查看是否存在“Continuum Analytics”,如果存在,则假设用户正在 anaconda 中运行。
我敢肯定那里有更好的想法,这就是我在这里的原因。
谢谢你。