我已经看到常见问题解答https://wiki.qt.io/Qt_for_Python#Frequently_Asked_Questions,其中指出
请考虑,如果您想为Qt / C ++生成绑定 项目,到Qt共享库的链接将丢失,并且 您将需要手动执行此操作。我们建议从以下版本构建PySide2 从头开始以使所有内容正确链接。
假设您想使用shiboken2包装一个c ++库,该库本身使用qt,甚至在其接口中使用qt类。在python世界中,您应该能够
pip install PySide2 my_cpp_lib
,然后python脚本应该能够
import my_cpp_lib
from PySide2.QtCore import QObject
my_cool_object = QObject()
my_cpp_lib.my_cool_api(my_cool_object)
我还不清楚如何实现该设置。从FAQ中,我推断在这种情况下从源代码编译PySide2会很好(因为我想使用shiboken2_generator来包装my_cpp_lib)。但是,我仍然希望与标准PySide2软件包兼容(当然,my_cpp_lib和PySide2之间将存在版本依赖性)。
链接到PySide2的QT共享对象/ dll是一个坏主意吗?如果是这样,为什么?哪个会更好呢?
如果qt库应该与my_cpp_lib python软件包一起打包,那么如何仍然可以使用PySide而不会发生冲突(因为必须有两个不同的共享库)?