相关疑难解决方法(0)

如何找到运行代码的conda环境的名称?

我正在寻找一种很好的方法来计算我在运行代码或交互式python实例中的conda环境的名称.

用例是我使用miniconda安装的Python 2和Python 3内核运行Jupyter笔记本.默认环境是Py3.Py2有一个单独的环境.在笔记本文件中,我希望它尝试conda install foo.我现在正在使用subcommand这个,因为我找不到类似的程序性conda pip.main(['install','foo']).

问题是foo如果笔记本使用Py2内核运行,命令需要知道要安装在那里的Py2环境的名称.如果没有该信息,它将安装在默认的Py3环境中.我希望代码能够确定它所处的环境以及它自己的正确名称.

到目前为止,我得到的最佳解决方案是:

import sys

def get_env():
    sp = sys.path[1].split("/")
    if "envs" in sp:
        return sp[sp.index("envs") + 1]
    else:
        return ""
Run Code Online (Sandbox Code Playgroud)

是否有更直接/适当的方法来实现这一目标?

python env anaconda conda jupyter

23
推荐指数
6
解决办法
2万
查看次数

任何方式来判断用户的python环境是否是anaconda

我正在分发一个内部python lib,我希望这样做,如果用户在运行此文件时使用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
Run Code Online (Sandbox Code Playgroud)

但这实际上只告诉我用户是否在他们的系统上安装了anaconda,而不是当前的python进程是否在anaconda环境中运行.

我注意到当我启动python或ipython shell时,我看到"Python 3.3.3 | Continuum Analytics,Inc |" 在顶部.我的下一个想法是尝试找到如何获取此字符串以查看是否存在"Continuum Analytics",如果存在,则假设用户在anaconda中运行.

我相信那里有更好的想法,这就是我在这里的原因.

谢谢.

python anaconda

11
推荐指数
3
解决办法
7023
查看次数

标签 统计

anaconda ×2

python ×2

conda ×1

env ×1

jupyter ×1