我在开源python库上提交了一个问题,并收到了有关开发人员无法重现该错误的反馈。我已将软件包安装到conda环境中,并且想弄清楚将软件包安装到的环境,以便尝试在其原始环境中重现该问题。问题是我有几个要解决的问题,而我目前的“激活环境->启动python解释器->尝试导入程序包->退出解释器->停用环境”策略已经过时了。
是否有一种简单的方法可以列出包含特定软件包的所有环境?像这样:
conda info --envs --package=PackageName
编辑:我已经弄清楚了如何检查我的环境中的 any 中是否安装了软件包。仍然不会提醒我该软件包所在的环境,只是告诉我该软件包是否存在:
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
EDIT2:这是我的终极解决方案:
echo Continuum/anaconda3/envs/*/lib/site-packages/PACKAGENAME | sed -E 's/[^ ]+envs\/([^/]+)\/lib[^ ]+/\1/g' | tr " " "\n"
答案 0 :(得分:1)
有关使用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
(-B 3在匹配前打印3行,修改了awk命令以略过“#” envs。将软件包名称添加到列表中,否则用-B 3破解将无效)
答案 1 :(得分:1)
如果它是Python程序包,那将是又快又脏的
final
列出安装的每个位置(基本除外)。如果只想要名称,则可以提取它...
echo Continuum/anaconda3/envs/*/lib/python*/site-packages/packagename