如何列出属于已安装软件包的文件?
我已经完成了我的作业:搜索、尝试并阅读 conda 文档。
我查看了
list
、info
、search
和 package
子命令。
我的 conda 版本:4.3.30
我的用例:
当包“A”安装了另一个包“B”作为其依赖项时。但是 B 有错误,或者安装不知何故损坏,我想检查 B 安装了哪些文件。
扩展用途:当A的命令调用B的某个命令
b
,但我不知道B的确切名称时。基于b
的“反向”搜索找到B并让我阅读更多内容关于它。
假设你已经激活了相关的anaconda环境,你可以查看文件
${CONDA_PREFIX}/conda-meta/<package-name-and-version>-<hash>.json
并查找files
元素。
(这适用于 Linux 上的 Miniconda)
发现conda安装的所有包都存放在
<root_environment>/pkgs
下。通过运行root environment
可以了解conda info
等信息。
然后列出包中的文件:
tree <root_environment>/pkgs/<package_name>-<package_version>
或者使用
find
,也可以找到哪个下载的包有以下命令:
find <root_environment> -type f -iname 'somecommand'
<root_environment>
这里是一个占位符,用于类似 ~/anaconda
的内容,如果有人将 anaconda 安装到 ~/anaconda
这个解决方案是 *nix 特定的,但对我来说已经足够好了。
为了完整起见,以下是如何从 Powershell 完成此操作。
$condaInfo = conda info --json | ConvertFrom-Json
Get-ChildItem -Path $condaInfo.'package cache'[0] -Filter 'pattern' -Recurse -ErrorAction SilentlyContinue -Force
可能有多个
$condaInfo.'package cache'
文件夹。