gpt4 book ai didi

python - PyQT项目组织

转载 作者:太空宇宙 更新时间:2023-11-03 12:33:11 34 4
gpt4 key购买 nike

我想组织我的 PyQT 项目,我尝试将 UI 放在子文件夹中并像这样导入它们:

import sys
sys.path.append('UI/gui_sensors')
from gui_sensors_extended import Ui_SensorsWindow_Extended

但它给了我错误,因为它找不到 *Ui_SensorsWindow*,继承自 *Ui_SensorsWindow_Extended*

的 ui 类

那么,您对组织我的项目有什么建议?我如何在代码中处理它?<​​/p>

最佳答案

构建 Python 项目时要记住一件关键的事情:当前运行脚本的目录会自动添加到 sys.path 的开头。

因此,如果您将main.py 脚本放在包的外部 顶层容器目录中,这将保证包导入始终有效,无论从哪里执行脚本。为了说明这一点,这里有一个简单的项目结构:

project /
main.py
package /
__init__.py
app.py
ui /
__init__.py
mainwindow.py

main.py 脚本应该非常小,并且只包含如下内容:

if __name__ == '__main__':

import sys
from package import app
sys.exit(app.run())

app 模块中,gui 模块将像这样导入:

from package.ui.mainwindow import Ui_MainWindow

可以在包树中的任何地方使用相同的导入语法。所以如果你像这样添加另一个子包:

project /
main.py
package /
...
dialogs /
__init__.py
search.py

然后 search 模块将像这样导入它的 gui 模块:

from package.ui.search import Ui_SearchDialog

如果您以这种方式组织所有 python 项目,则永远不需要操作 sys.path 以使您的本地导入正常工作。

关于python - PyQT项目组织,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21826516/

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