如何将 Python 文件中的函数导入 Kivy 文件?

Posted

技术标签:

【中文标题】如何将 Python 文件中的函数导入 Kivy 文件?【英文标题】:How to import a function from a Python file into a Kivy file? 【发布时间】:2021-08-23 16:02:47 【问题描述】:

我的 main.py python 文件中有一个名为 resource_path 的函数,如下所示:


def resource_path(relative_path):
    try:
        base_path = sys._MEIPASS
    except Exception:
        base_path = os.path.abspath(".")

    return os.path.join(base_path, relative_path)

我想在我的 main.kv 文件中使用这个函数,比如使用下面的命令来调用图像:

<ImageScreen>


    MDBoxLayout:
        id: logo_box
        adaptive_height: True
        orientation: "vertical"


        Image:
            source: resource_path("CoinSnack_Logo.png")

所以,我尝试在 main.kv 文件中使用以下代码导入函数:

#:import resource_path main.resource_path

当我在我的 Python 项目中运行 main.py 时,一切正常。但是当我运行我从项目编译的 .exe 文件时,我收到以下错误:

      1:#:import toast kivymd.toast.toast
 >>   2:#:import resource_path main.resource_path
      3:
      4:#creating the screen manager for multiple screens
 ...
 Unable to import package 'main.resource_path'
[12132] Failed to execute script main


如果有人能帮我解决这个问题或告诉我如何将 Python 文件的函数导入 Kivy 文件,我将不胜感激。

非常感谢!

【问题讨论】:

【参考方案1】:

试试:

source: root.resource_path("CoinSnack_Logo.png")

如果这不起作用,请尝试:

source: app.resource_path("CoinSnack_Logo.png")

也删除

#:import resource_path main.resource_path

我相信这会奏效

【讨论】:

这对我不起作用....

以上是关于如何将 Python 文件中的函数导入 Kivy 文件?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Kivy 语言导入中使用别名?

Python Kivy 将文件写入/读取到 SD 卡

如何在 python 中获取用户输入(Kivy 框架)

输入直到离开kivy时如何调用函数?

如何将一个函数中的列表导入另一个 python 模块?

Python Kivy:如何在按钮单击时调用函数?