Python 在anaconda环境中搜索安装了特定软件包的环境

Python 在anaconda环境中搜索安装了特定软件包的环境,python,pip,anaconda,conda,virtual-environment,Python,Pip,Anaconda,Conda,Virtual Environment,我提交了一个关于开放源代码python库的问题,并收到了开发人员无法重现错误的反馈。我已将该软件包安装到conda环境中,我想知道我将该软件包安装到了什么环境中,以便我可以尝试在其原始环境中重现该问题。问题是,我有几个conda环境要处理,而我当前的“激活环境->启动python解释器->尝试导入包->退出解释器->停用环境”的策略已经过时了 是否有一种简单的方法列出包含某个包的所有环境?比如: conda info --envs --package=PackageName 编辑:我已经知道如

我提交了一个关于开放源代码python库的问题,并收到了开发人员无法重现错误的反馈。我已将该软件包安装到conda环境中,我想知道我将该软件包安装到了什么环境中,以便我可以尝试在其原始环境中重现该问题。问题是,我有几个conda环境要处理,而我当前的“激活环境->启动python解释器->尝试导入包->退出解释器->停用环境”的策略已经过时了

是否有一种简单的方法列出包含某个包的所有环境?比如:

conda info --envs --package=PackageName
编辑:我已经知道如何检查我的任何环境中是否安装了软件包。仍然不会提醒我哪个环境中有包,只是在包存在时显示一个点击:

Continuum/anaconda3/condabin/conda.bat info --envs | awk '{print $1}' | xargs -ix Continuum/anaconda3/condabin/conda.bat list -n x | grep packagename
这是在windows计算机上,使用git bash shell,工作目录设置为
/c/Users/userName/AppData/Local

编辑2:这是我的最终解决方案:

echo Continuum/anaconda3/envs/*/lib/site-packages/PACKAGENAME | sed -E 's/[^ ]+envs\/([^/]+)\/lib[^ ]+/\1/g' | tr " " "\n"

使用Anaconda Navigator怎么样?有一个已安装插件的列表。(不确定这是否会更快,加载包有时需要很长时间。)

这甚至适用于停用的环境:

# conda env list ## to list all environments
conda list -n myenv packagename
(可能还有一个愚蠢的问题:简单的grep包名不起作用?)

编辑:基于上次编辑:

Continuum/anaconda3/condabin/conda.bat info --envs | awk '{if ($1 != "#") {print $1}}' | xargs -ix Continuum/anaconda3/condabin/conda.bat list -n x packagename | grep -B 3 packagename

(-B3在匹配前打印3行,修改awk命令略过“#”envs。将packagename添加到列表中,否则使用-B3进行黑客攻击将不起作用)

如果它是Python包,那么快速而肮脏的

echo Continuum/anaconda3/envs/*/lib/python*/site-packages/packagename
列出它安装的每个位置(不包括基本位置)。如果你只想要这个名字,那么你可以提取它

echo Continuum/anaconda3/envs/*/lib/python*/site-packages/packagename |\
sed -E 's/[^ ]+envs\/([^/]+)\/lib[^ ]+/\1/g'

grep可以工作,但不完全确定环境/软件包的物理安装位置。我认为“conda info”应该返回该信息。这里有一个类似的问题正在讨论
conda env list
将显示所有已安装的环境。我正在尝试完成你们正在宣传的总体策略,这真的很重要。以下是我到目前为止得到的:(windows机器,使用git bash作为shell终端):
Continuum/anaconda3/condabin/conda.bat信息--envs | awk'{print$2}'| sed's,C:,/C,g'| sed's.\\./.g'\124; xargs-ix ls x
可以满足我的需要,但输出非常混乱。将其提供给@merv,以获得更简单的解决方案,同时提供更干净、更直接的输出。我喜欢你的方法也提供了包版本,这不是我需要的,但可能其他人会觉得有用。我喜欢你的一般方法,但我得到的输出(来自第一个echo调用)只是传入echo的字符串,没有任何通配符扩展。在windows机器上使用git bash,我认为基本上是MINGW64。对其进行了轻微修改:
Continuum/anaconda3/envs/*/lib/site packages/packageName