从另一个文件导入本地函数和变量时,Pyinstaller 不工作

Pyinstaller not working when importing local functions and variables from another file

标题。 我有 3 个文件。 1个主文件,到运行脚本。 1 个函数文件,其中包含脚本使用的函数。和 1 个数据文件,其中包含脚本访问的变量。 当我使用 pyinstaller 将主要功能编译为 exe 时,尽管尝试了很多不同的选项(--onefile、--add-data 等),但我一直无法弄清楚如何修理它。 关于我的设置的更详细视图:

# data file
my_bool = False
# functions file
def my_func():
    from data_file import my_bool
    my_bool = not my_bool
# main script
from data_file import my_bool
from functions_file import my_func
print(my_bool)
my_func()
print(my_bool)

对我来说,这实际上在尝试编译文件之前完成了它应该完美完成的工作。当然这不是我的实际设置,但在检查后它确实像我预期的那样工作,输出:

False
True

所以在所有的解释之后,我只是想知道如何解决这个问题。我认为这与我导入所有内容的方式有关,但我应该如何解决这个问题?我总是可以,但我不想因为一个小的、可能可以解决的问题而被迫重写整个项目。 提前致谢

首先,Pyinstaller非常挑剔。大多数较新版本与某些模块不兼容,即最新的 Pyinstaller 将无法使用 Pygame 字体,至少根据我的经验,因此请考虑检查日志文件或它创建的错误消息。

其次,Pyinstaller 要处理多个文件,它们都需要在同一个目录中,甚至是同一个子目录中。 TechwithTim 有一个很棒的视频解释了所有这些,但总而言之,您需要将所有文件和依赖项置于同一级别,并具有相同的访问级别。

除此之外,我看不出有什么问题。代码专家不仅看起来很简单,而且我已经成功地完成了更重的事情,这让我觉得这可能是你使用的模块和 Pyinstaller 的兼容性问题。

希望这对您有所帮助,我真的很推荐我之前提到的那个视频。