有没有办法找到使用easy_install或pip安装的所有Python PyPI包?我的意思是,不包括发行版工具(在Debian上的apt-get)安装的所有东西。
当前回答
开始:
$ pip list
列出所有软件包。一旦你找到你想要的包,使用:
$ pip show <package-name>
这将显示有关此包的详细信息,包括其文件夹。如果您已经知道包的名称,可以跳过第一部分
点击这里查看更多关于pip show的信息,点击这里查看更多关于pip list的信息。
例子:
$ pip show jupyter
Name: jupyter
Version: 1.0.0
Summary: Jupyter metapackage. Install all the Jupyter components in one go.
Home-page: http://jupyter.org
Author: Jupyter Development Team
Author-email: jupyter@googlegroups.org
License: BSD
Location: /usr/local/lib/python2.7/site-packages
Requires: ipywidgets, nbconvert, notebook, jupyter-console, qtconsole, ipykernel
其他回答
从pip的1.3版本开始,您现在可以使用pip list
它有一些有用的选项,包括显示过期包的能力。下面是文档:https://pip.pypa.io/en/latest/reference/pip_list/
pip. get_installed_distributors()将给出已安装包的列表
import pip
from os.path import join
for package in pip.get_installed_distributions():
print(package.location) # you can exclude packages that's in /usr/XXX
print(join(package.location, package._get_metadata("top_level.txt"))) # root directory of this package
PIP冻结将输出已安装包及其版本的列表。它还允许您将这些包写入文件,以便稍后用于设置新环境。
https://pip.pypa.io/en/stable/reference/pip_freeze/#pip-freeze
获取site-packages/(以及dist-packages/如果存在的话)中的所有文件/文件夹名,并使用包管理器剥离通过package安装的文件/文件夹名。
下面是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:'
推荐文章
- 将Pandas或Numpy Nan替换为None以用于MysqlDB
- 使用pandas对同一列进行多个聚合
- 使用Python解析HTML
- django MultiValueDictKeyError错误,我如何处理它
- 如何在for循环期间修改列表条目?
- 我如何在Django中创建一个鼻涕虫?
- 没有名为'django.core.urlresolvers'的模块
- 蟒蛇导出环境文件
- Django - makemigrations -未检测到任何更改
- SQLAlchemy:引擎、连接和会话差异
- 在Python Pandas中删除多个列中的所有重复行
- 更改pandas DataFrame中的特定列名
- 将Pandas多索引转换为列
- 熊猫在每组中获得最高的n个记录
- 熊猫数据帧得到每组的第一行