如何找到python包的反向依赖

2023-12-01

我有一个虚拟环境,其中elasticsearchpython 包已安装。

我想找到哪个包依赖elasticsearch并在虚拟环境中进行安装。

(.venv)root@test:~# pip freeze | grep elast
elasticsearch==1.4.0.dev0

我尝试了一些解决方案显示与 pip 的反向依赖关系?但它没有起作用

(.venv)root@test:~# python
Python 2.7.8 (default, Oct 18 2014, 12:50:18)
[GCC 4.9.1] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import pip
>>> package_name = 'elasticsearch'
>>> rev_dep = [pkg.project_name for pkg in pip.get_installed_distributions() if package_name in [requirement.project_name for requirement in pkg.requires()]]
>>> rev_dep
[]
>>>

模块返回虚拟环境路径的路径。

(.venv)root@test:~# python -c 'import elasticsearch; print elasticsearch.__path__'
['/opt/venvs/.venv/local/lib/python2.7/site-packages/elasticsearch']

我怀疑elasticsearchdebian 软件包可能安装了这个 python 软件包,但不确定。

(.venv)root@test:~# dpkg -l | grep elast
ii  elasticsearch                        1.2.0                           all          Open Source, Distributed, RESTful Search Engine

步骤 1. 找到 virtualenv 的 site-packages 目录:

请注意我的 shell 提示符显示venv38和最后的egrep。

(venv38) myuser@foo$ python -m site | egrep venv38

site.py 模块有各种有趣的信息,但我们只对 venv 的 site-package 感兴趣。

Output:

'/Users/myuser/kds2/py2/venv38/lib/python3.8/site-packages',

步骤 2. 查找依赖项*dist-info/METADATA files

更改为您在上面找到的 site-packages 目录。

我正在寻找谁在使用bleach而不是elasticsearch

cd /Users/myuser/kds2/py2/venv38/lib/python3.8/site-packages

find . -name METADATA -exec grep -H -i bleach {} \; | grep Requires-Dist

注意:虽然这里不必担心,但像这样的字符- or _包名称中的内容可能会影响 grep 的编写方式。

output:

./readme_renderer-24.0.dist-info/METADATA:Requires-Dist: bleach (>=2.1.0)

So, the readme_renderer是什么拉动了这种依赖性。

注意使用find . -name METADATA -exec grep -H Requires-Dist {} \; | grep bleach即,在 Requires-Dist 和搜索到的包之间交换 grep 序列效果并不好,因为在我的例子中,它显示了很多bleach自己的依赖关系。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何找到python包的反向依赖 的相关文章

随机推荐

  • 错误:套接字使用节点 v0.12.0 挂起

    我正在尝试使用 Node 执行一个非常简单的 HTTP POST var querystring require querystring var http require http var postData querystring stri
  • Phonegap:带有背景图像的相机视图

    我使用 Phonegap 和 Sencha Touch 来获得相机功能 但我希望将具有透明背景的图片叠加在实时相机视图上 而不是默认的相机视图 类似于下面的示例 其中恐龙图像已叠加在相机视图图像上 你能告诉我这个功能是否可以通过Phoneg
  • google-services.json 适用于不同的productFlavors

    Update GCM已弃用 请使用FCM 我正在按照 Google Developers 页面的指南实施新的 Google Cloud Messaginghere 我已经成功运行并测试了它 但我现在的问题是我有不同的产品风格 具有不同的 a
  • Microsoft Dynamics NAV Web 服务中的日期筛选器

    当在 php 中向 Web 服务发送过滤器时 一切正常 但是当我们需要对日期进行排序时 我们遇到了问题 我们需要获取在特定日期之后修改的所有对象 在页面中我们有一个日期元素 如下所示
  • 从 Outlook webaddin 打开 url 时弹出窗口被阻止错误

    当用户单击插件视图中的按钮时 我尝试打开网址 但网络插件抛出错误 我的打开网址的代码 let a document createElement a a setAttribute target blank a setAttribute sty
  • 访问共享文件?

    我试图通过 UNC 路径从 Windows 共享文件夹中读取文件正文 并收到此异常 The process cannot access the file
  • 禁用 matplotlib pyplot 的输出

    我有一个数组A形状 1000 2000 我使用 matplotlib pyplot 来绘制数组 这意味着 1000 条曲线 使用 import matplotlib pyplot as plt plt plot A 该图很好 但有一千行
  • 将 Cloud Functions 执行隐藏在 Cloud Endpoints 后面

    我想知道是否可以限制 隐藏使用云端点对我的云功能的直接访问 我跟着this来自谷歌的教程 在链接上它说 通过此设置 ESP 会拦截对您的函数的所有请求 并在调用该函数之前执行任何必要的检查 例如身份验证 我成功完成了本教程 在端点上添加了
  • Android 中的 EditText 视图中允许多行吗?

    如何在Android中允许多行EditText view 默认情况下所有EditTextAndroid 中的小部件是多行的 这是一些示例代码
  • 在 Windows 命令行中使用双引号提取密码存档

    我想从 PHP 中提取存档文件 zip rar z7 gz 等 因为密码可以包含特殊字符 例如 并且 PHP exec 不支持 unicode 字符 出于某种原因 我最终使用了一个批处理文件 如此处所述php exec 在 unicode
  • 无法打开包含文件:“io.h”:没有这样的文件或目录

    我试图使用 Cython 编译一个简单的 pyx 文件 print hello 这是我的 setup py from distutils core import setup from Cython Build import cythoniz
  • 根据 VBA 2010 中的字符断开字符串

    在 Excel 2010 中 使用 VBA 如何在找到某个字符时拆分字符串 Let say A1 This is a test of the emergency broadcast signal 我将其分配给一个变量 例如 strColum
  • React Native - 当应用程序不在后台时深度链接不起作用(Android,iOS)

    if app in background 将打开特定屏幕 if app is not in background or kill the app 它只会显示第一个屏幕 Linking getInitialURL 返回 null 如果您想在应
  • 如何查找我的 Subversion 服务器版本号?

    我想知道我的服务器是否运行 Subversion 1 5 我怎样才能找到它 如果知道我的 SVN 客户端版本号也很高兴 svn help没有帮助 Note 我不想要我的项目的修订号等 这个问题是关于颠覆软件 itself 要查找 subve
  • 如何将对象传递给 HttpClient.PostAsync 并序列化为 JSON 正文?

    我在用着System Net Http 我在网上找到了几个例子 我设法创建了这个代码POST要求 public static string POST string resource string token using var client
  • 在 MapKit 中显示行车路线

    有没有办法在 iPhone MapKit 中显示行车路线 有没有办法从 google MAPs API 获取 XML 或其他格式的路线坐标和名称 例如 不可以 您不能使用 MapKit 获取行车路线 它不支持这一点 但是 您可以在 MapK
  • 使用 NetTcpBinding 进行双工通信 - ContractFilter 不匹配?

    我正在使用 NetTcpBinding 在客户端和服务器之间打开双工通信通道方面取得缓慢而稳定的进展 仅供参考 你可以观察我的新手进度here and here 我现在正处于已成功连接到服务器的阶段 通过服务器的防火墙 客户端可以向服务器发
  • 向 Chrome 扩展程序的右键菜单添加选项

    有谁知道是否可以在 Chrome 中的鼠标右键菜单中添加另一个与扩展程序通信的选项 我的意思是 安装扩展程序后 鼠标右键单击菜单中会出现另一个选项 该选项会将数据发送到扩展程序打开的侦听器 这是解决方案 rightClickHandler
  • Yii URL 管理 HTTPS

    我使用代码来分隔网站中的 HTTPS 和 HTTP 页面 问题是 当我使用 HTTP 时 到 HTTPS 的链接没有 WWW 反之亦然 我在脚本中没有发现问题 public function createUrl route params a
  • 如何找到python包的反向依赖

    我有一个虚拟环境 其中elasticsearchpython 包已安装 我想找到哪个包依赖elasticsearch并在虚拟环境中进行安装 venv root test pip freeze grep elast elasticsearch