如何在我知道名称的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
但这会涉及解析人类可读的输出,我觉得最好能以机器可读的形式检索信息。
答案 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