测试一个轮子

有一个工具可以用来测试一组轮子,称为‘testwheel’,但它目前位于不同的仓库中(qt/qtqa):

  • 使用来自qtqa仓库scripts/packagetesting/testwheel.py

测试轮子:

  • 创建一个虚拟环境并激活它。

  • 安装requirements.txt文件中列出的依赖项。

  • 安装所有轮子:shiboken6, shiboken6-generator, 和 PySide6-Essentials

  • 运行 testwheel 工具。

  • 安装 PySide6-Addons 轮子。

  • 再次运行 testwheel 工具。

  • 如果您可以访问商业轮子,请不要忘记PySide6-M2M,并重新运行testwheel工具。

在命令行上构建

  • 考虑使用 build_scripts/qp5_tool.py

使用地址消毒器构建(Linux)

需要告诉ASAN不要因内存泄漏而退出,并且需要预加载其库。假设库位于/usr/lib/gcc/x86_64-linux-gnu/11

export ASAN_OPTIONS=detect_leaks=0
export LD_PRELOAD=/usr/lib/gcc/x86_64-linux-gnu/11/libasan.so
python setup.py build [...] --sanitize-address

将Python文件去虚拟化

Shiboken模块中的Python文件完全是虚拟的,即出于安全原因,它们在文件系统中并不存在。

出于调试目的或更改某些内容,可能希望再次将这些文件移动到普通文件系统中。

  • 将环境变量“SBK_EMBED”设置为false一次,在导入PySide6或shiboken6时解压这些文件。这些文件会被写入“side-packages/shiboken6/files.dir”中,并从那时起使用。

  • 将变量设置为 true 会移除“files.dir”。

  • 如果没有“SBK_EMBED”变量,嵌入状态将保持粘性。