首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何以编程方式查找已安装包的详细信息(pip显示等效)?

如何以编程方式查找已安装包的详细信息(pip显示等效)?
EN

Stack Overflow用户
提问于 2021-08-11 08:17:33
回答 2查看 158关注 0票数 2

我知道有一个命令pip show用于这个目的,但我想知道是否可以通过执行import pip来获取详细信息?当您运行pip show时,它给出的信息如下:

代码语言:javascript
复制
pip show requests
Name: requests
Version: 2.26.0
Summary: Python HTTP for Humans.
Home-page: https://requests.readthedocs.io
Author: Kenneth Reitz
Author-email: me@kennethreitz.org
License: Apache 2.0
Location: /anaconda3/lib/python3.7/site-packages
Requires: urllib3, certifi, charset-normalizer, idna
Required-by: yarg, wordpress-api, WooCommerce, web3, vvm, tweepy, tika, stellar-sdk, stellar-base-sseclient, Sphinx, spacy, smart-open, requests-toolbelt, requests-oauthlib, requests-html, python3-nmap, python-binance, pyArango, poetry, pigar, pandas-datareader, MechanicalSoup, mara-pipelines, kubernetes, ipfshttpclient, hdfs, google-cloud-storage, google-api-core, discum, conda, conda-build, ccxt, CacheControl, browsermob-proxy, bravado, apache-beam, anaconda-project, anaconda-client, alpha-vantage, facebook-sdk

我需要Required-by字段的数据。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-08-11 09:05:23

通过使用pip源代码,我发现了下面的解决方案,它适用于Python3.8.1和pip21.0.1。

代码语言:javascript
复制
from pip._internal.commands.show import search_packages_info as search_packages_info
    
package_name='requests'

# here I use next, because search_packages_info returns a generator
package_info=next(search_packages_info([package_name]))
required_by=package_info['required_by']

示例输出(它依赖于使用的python环境)

代码语言:javascript
复制
['requests-unixsocket', 'pysolr', 'jupyterlab-server']
票数 2
EN

Stack Overflow用户

发布于 2021-08-11 09:10:28

代码语言:javascript
复制
import pip

def show(package):
    if hasattr(pip, 'main'):
        pip.main(['show', package])
    else:
        pip._internal.main(['show', package])

show('requests')

或者更好地使用当前运行时:

代码语言:javascript
复制
import subprocess
import sys

def show(package):
    subprocess.check_call([sys.executable, "-m", "pip", "show", package])
    
    
show('requests')

答案受到这个答案的启发(过度劳累)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68738368

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档