如何查看 pyav 依赖的动态链接库
linux 下的方案
在 Python 中查看 pyav 依赖的动态链接库,可以使用 ldd
命令。ldd
命令可以列出一个可执行文件或者共享库依赖的共享库列表。使用下面的命令可以查看 pyav 依赖的动态链接库:
ldd $(python -c "import av; print(av.__file__)")
这个命令会在终端中输出 pyav 依赖的所有共享库。如果系统中没有安装 ldd
命令,可以通过安装 libc6-dev
包来安装该命令。在 Ubuntu 和 Debian 系统中可以使用下面的命令来安装:
sudo apt-get install libc6-dev
mac 下的方案
在 macOS 上,可以使用 otool
命令来查看一个二进制文件的动态链接库依赖关系。对于 Python 模块,可以先找到对应的 .so
文件,然后使用 otool -L
命令来查看依赖关系。
例如,假设我们要查看 pyav
模块的依赖关系,可以按照以下步骤操作:
- 安装
pyav
模块:
pip install av
找到 av
模块的 .so
文件路径:
$ python -c "import av; print(av.__file__)"
/path/to/site-packages/av/__init__.pyc
其中,/path/to/site-packages
是你的 Python 环境的第三方库路径。
使用 otool -L
命令查看依赖关系:
$ otool -L /path/to/site-packages/av/.dylibs/av.so
/path/to/site-packages/av/.dylibs/av.so:
/usr/local/opt/ffmpeg/lib/libavformat.58.dylib (compatibility version 58.0.0, current version 58.54.100)
/usr/local/opt/ffmpeg/lib/libavcodec.58.dylib (compatibility version 58.0.0, current version 58.91.100)
/usr/local/opt/ffmpeg/lib/libavutil.56.dylib (compatibility version 56.0.0, current version 56.70.100)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1292.100.5)
这里可以看到 av.so
依赖于 libavformat.58.dylib
、libavcodec.58.dylib
、libavutil.56.dylib
以及系统库 libSystem.B.dylib
。
实操
╰─➤ fd -u av
.dylibs/libavcodec.59.37.100.dylib
.dylibs/libavdevice.59.7.100.dylib
.dylibs/libavfilter.8.44.100.dylib
.dylibs/libavformat.59.27.100.dylib
.dylibs/libavutil.57.28.100.dylib
.dylibs/libdav1d.5.dylib
可以看到,pyav 使用了如下的 ffmpeg 动态链接库:
- libavcodec
- libavdevice
- libavfilter
- libavformat
- libavutil
- libdav1d
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。