有没有办法找到使用easy_install或pip安装的所有Python PyPI包?我的意思是,不包括发行版工具(在Debian上的apt-get)安装的所有东西。
当前回答
下面是fedora或其他rpm发行版的一行代码(基于@barraponto tips):
find /usr/lib/python2.7/site-packages -maxdepth 2 -name __init__.py | xargs rpm -qf | grep 'not owned by any package'
将此附加到上一个命令以获得更清晰的输出:
| sed -r 's:.*/(\w+)/__.*:\1:'
其他回答
如果有人想知道,你可以使用'pip show'命令。
pip show [options] <package>
这将列出给定包的安装目录。
至少对于Ubuntu(也许其他的)来说是这样工作的(灵感来自于这个线程之前的一篇文章):
printf "Installed with pip:";
pip list 2>/dev/null | gawk '{print $1;}' | while read; do pip show "${REPLY}" 2>/dev/null | grep 'Location: /usr/local/lib/python2.7/dist-packages' >/dev/null; if (( $? == 0 )); then printf " ${REPLY}"; fi; done; echo
PIP冻结将输出已安装包及其版本的列表。它还允许您将这些包写入文件,以便稍后用于设置新环境。
https://pip.pypa.io/en/stable/reference/pip_freeze/#pip-freeze
PIP列表[选项] 你可以在这里看到完整的参考资料
新版本的pip能够通过pip list -l或pip freeze -l(——list)执行OP想要的操作。 在Debian上(至少),手册页并没有说明这一点,我只是在假定该特性必须存在的情况下,通过pip list—help才发现了它。
最近有评论认为这个功能在文档或现有的答案中都不明显(尽管有些人暗示了),所以我认为我应该发布。我更愿意这样做作为一个评论,但我没有声誉点。
推荐文章
- 证书验证失败:无法获得本地颁发者证书
- 当使用pip3安装包时,“Python中的ssl模块不可用”
- 无法切换Python与pyenv
- Python if not == vs if !=
- 如何从scikit-learn决策树中提取决策规则?
- 为什么在Mac OS X v10.9 (Mavericks)的终端中apt-get功能不起作用?
- 将旋转的xtick标签与各自的xtick对齐
- 为什么元组可以包含可变项?
- 如何合并字典的字典?
- 如何创建类属性?
- 不区分大小写的“in”
- 在Python中获取迭代器中的元素个数
- 解析日期字符串并更改格式
- 使用try和。Python中的if
- 如何在Python中获得所有直接子目录