Pip和conda在哪里保存已安装程序包的列表,以便他们知道是谁安装了什么? [英] Where does pip and conda keep the list of installed packages so that they know who installed what?

查看:0
本文介绍了Pip和conda在哪里保存已安装程序包的列表,以便他们知道是谁安装了什么?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在conda环境中做了一些pip install,似乎condapip都遵循了python约定,将包安装到site-packages文件夹中。

当我使用pip listconda list时,他们似乎很清楚谁安装了哪些包。问题是,在Linux上,这两个安装列表存储在哪里?

推荐答案

如果是pip list,则使用pkg_resources库来访问Python库的资源文件。

为此,aWorking Set访问活动分发版本。来自文档的工作集

表示sys.path上当前处于活动状态的分发。

因此,当调用WorkingSet的实例时,默认情况下它将搜索位于sys.path上的模块。

例如,当我运行sys.path

['/opt/conda/lib/python37.zip',
 '/opt/conda/lib/python3.7',
 '/opt/conda/lib/python3.7/lib-dynload',
 '',
 '/opt/conda/lib/python3.7/site-packages',
 '/opt/conda/lib/python3.7/site-packages/IPython/extensions'
]
这些路径将用于搜索已安装的程序包。下面是一个示例

import pkg_resources

# Define working set
working_set = pkg_resources.working_set

# Package, version and location 
[d for d in working_set]
>>>
[zipp 3.1.0 (/opt/conda/lib/python3.7/site-packages),
 zict 2.0.0 (/opt/conda/lib/python3.7/site-packages),
...,
attrs 19.3.0 (/opt/conda/lib/python3.7/site-packages),
 async-generator 1.10 (/opt/conda/lib/python3.7/site-packages),
 alembic 1.4.2 (/opt/conda/lib/python3.7/site-packages)]

这篇关于Pip和conda在哪里保存已安装程序包的列表,以便他们知道是谁安装了什么?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆