Pyuic5 生成带有无效导入的 python 文件

Posted

技术标签:

【中文标题】Pyuic5 生成带有无效导入的 python 文件【英文标题】:Pyuic5 generates python files with invalid imports 【发布时间】:2017-07-04 11:59:33 【问题描述】:

在项目中使用 PyQt5 时,我使用 pyuic5 -x design.ui -o design_ui.py 将一些 .ui 文件转换为 .py 文件。在生成的python文件中,有这个import语句:from ktreewidgetsearchline import KTreeWidgetSearchLine,Python(3.6.1)是找不到的。

我使用的是 Ubuntu 17.04。我曾尝试安装 KDE 及其开发包,但没有成功。

有人能指出我正确的方向吗?我在哪里可以找到显示小部件所需的正确 python 包?或者,我如何配置/告诉 PyQt/pyuic5 生成可以在 gnome/unity 中显示的文件,或者一般跨平台?

非常感谢:)

【问题讨论】:

您可以共享 .ui 文件。也许您正在添加 KDE 组件?如果您正在这样做,请不要这样做。 很遗憾,我无权披露该文件。然而,你是对的。其中有 KDE 元素。它最初是在 (Py)Qt4 中设计的,这有关系吗? 执行这个:sudo apt-get install python3-pykde4 感谢您的帮助 :) 看来我必须更改设计文件以使用更标准的东西,因为该应用程序也应该在非 KDE 上运行。 【参考方案1】:

我的项目也有类似的问题,解决方法如下:

对于我的项目(参见 GitHub 上的 KSP Mod Analyzer),我有以下结构:

ksp-mod-analyzer/ui/mainwindow.ui(由 QT Designer 创建的 UI) ksp-mod-analyzer/ui/resources.qrc(带图标的资源文件)

运行 pyuic5 --from-imports mainwindow.ui -o mainwindow.py 将以下导入指令添加到我的 mainwindow.py

from . import resources_rc

这样,导入命令就起作用了。

【讨论】:

以上是关于Pyuic5 生成带有无效导入的 python 文件的主要内容,如果未能解决你的问题,请参考以下文章

IE10+ 上的 AngularJS,带有占位符的文本区域导致“无效参数”。

使用pyuic5的问题

使用 subprocess.Popen 启动 pyuic5

pyuic5 向后兼容性

在 Ubuntu 14.04 中为 Python3.4 构建 PyQt5 的问题是由 qprinter.h 引起的,然后 pyuic5 错误

带有 Expo-cli 的 Jestjs。 Invariant Violation:元素类型无效