步骤 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
自己的依赖关系。