在另一个conda环境中安装了哪个Python版本

时间:2017-04-02 12:23:37

标签: python conda

如何在我知道名称的conda环境中找出安装了哪个Python版本,但又不想激活该环境?

背景:我选择了懒惰的方式在python3.6计算机上获取Ubuntu 14.04并安装conda。但是我想在我的PYTHONPATH添加某些目录,具体取决于环境是python2.x还是python3.x而我打算通过包裹conda {{1}来实现此目的像这样:

activate

我对PYMAJOR=$(a_miracle_occurs $CONDAENV) BASHRC=$(cat <<EOF source ~/.bashrc source activate $CONDAENV export PATH=... export PYTHONPATH=".../modules$PYMAJOR" " EOF ) bash --rcfile <(echo "${BASHRC}") 的颠覆没有兼容性问题,而且我不想python要成为setup.py develop中的模块,因为仍有太多更改,结构层面。

备注:我知道PYTHONPATH但这会涉及解析人类可读的输出,我觉得最好能以机器可读的形式检索信息。

2 个答案:

答案 0 :(得分:5)

这里是一个单行代码,它将打印环境和相关的python版本:

CountLeadingZeros

以下是示例输出:

conda env list | grep -v "^$\|#" |awk '{print $1;}'|xargs -I{} -d "\n" sh -c 'printf "Env: {}\t"; conda list -n {} |grep "^python\s";'

建议:使用Env: base python 2.7.14 h1571d57_29 Env: python37 python 3.7.0 hc3d631a_0 获取环境列表,排除空行和#,进行解析,使用conda env list打印环境软件包,并使用grep for python。

欢迎您根据自己的喜好调整格式。

答案 1 :(得分:2)

我对anaconda一点都不熟悉,接下来的一切都是疯狂的猜测。如果anaconda在内部使用virtualenv,virtualenv应该安装到某个目录中(可能像$ANACONDA_HOME/envs/$CONDAENV?)。

如果是这样的话,那么只需运行$ANACONDA_HOME/envs/$CONDAENV/bin/python --version即可检索Python版本。

编辑以解决OP评论:

要仅返回版本字符串,请尝试:

$ANACONDA_HOME/envs/$CONDAENV/bin/python -c 'import platform; print(platform.python_version())'
>>> 3.6.0