gpt4 book ai didi

python - 如何找到Qt库位置

转载 作者:行者123 更新时间:2023-11-30 22:29:26 26 4
gpt4 key购买 nike

导入 PyQt5 模块后:

from PyQt5 import QtWidgets

我可以简单地找到模块的位置:

print QtWidgets

打印:

<module 'PyQt5.QtWidgets' from '/usr/local/lib/python2.7/site-packages/PyQt5/QtWidgets.so'>

但是除了 PyQt5 模块之外,还有一个 Qt 库。该 Qt 库是一组预编译的二进制文件,位于磁盘上的其他位置。它们的文件名通常在中间包含单词“Qt5”,例如:libQt5Core.dyliblibQt5DesignerComponents.dyliblibQt5Script.dylib

导入 PyQt5 模块后,有没有办法从 Python 内部获取此 Qt 库的文件路径?如何找出Python在哪里寻找PyQt5模块所需的Qt库文件?

最佳答案

libQt5Core.dylib这样的文件是在运行时动态链接的共享库。当创建需要此类库的可执行文件时,编译时链接器只需记录库的名称以及它提供的应用程序所需的任何例程。当应用程序运行时执行动态链接是操作系统的工作。

Unix 系统通常提供一个工具,可以确定可执行文件所需的依赖关系,并显示它们当前在系统上的位置。在 Linux 上,此工具称为 ldd(列出动态依赖项),OSX 上的等效命令是 otool -L。输出看起来像这样:

$ ldd /usr/lib/python3.6/site-packages/PyQt5/QtCore.so
linux-vdso.so.1 (0x00007ffd351e7000)
libQt5Core.so.5 => /usr/lib/libQt5Core.so.5 (0x00007f1cdc1c5000)
libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00007f1cdbe3e000)
libc.so.6 => /usr/lib/libc.so.6 (0x00007f1cdba87000)
libpthread.so.0 => /usr/lib/libpthread.so.0 (0x00007f1cdb869000)
...

在 Python 中,您可以简单地使用 subprocess 模块来运行适当的命令,然后解析输出以获取您需要的信息。

关于python - 如何找到Qt库位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46380533/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com