使用 Pyinstaller 导出的应用程序无法运行:“[99474] 加载 Python 库时出错”

问题描述 投票:0回答:1

我使用 tkinter 和 pillow 制作了一个简单的生产力计时器应用程序。它有几个图像和一个声音效果,并且在我的 IDE 中运行良好。我想导出它以便其他人可以试用。

当我打开 unix 文件时,这是我得到的错误(脚本名为“NWS.py”):

Dominics-MBP:~ <PATHTOFILE>/build/NWS/NWS ; exit;
[99474] Error loading Python lib '<PATHTOFILE>/build/NWS/Python': dlopen: 
dlopen(<PATHTOFILE>/build/NWS/Python, 0x000A): tried: 
'<PATHTOFILE>/build/NWS/Python' (no such file),
 '/System/Volumes/Preboot/Cryptexes/OS/<PATHTOFILE>/build/NWS/Python' (no such file), 
 '<PATHTOFILE>/build/NWS/Python' (no such file)
logout

我导航到文件目录并使用“pyinstaller NWS.py” 我还尝试了命令“--onefile”、“-w”和我的 Python 路径。 创建了一个应用程序 (120MB) 和一个包 (5MB),但它们都没有打开。

我尝试将声音效果的 .wav 文件移动到同一文件夹中。 我检查了我的 IDE 和我的终端是否运行相同版本的 Python,它们都在 3.11.2

有什么建议吗?

tkinter export pyinstaller python-3.11
1个回答
0
投票

对我有用的是 a) 导入sys,导入os b) 将这个 if 语句放在我的脚本的顶部:

''' 如果 getattr(sys, 'frozen', False): application_path = sys._MEIPASS 别的: application_path = os.path.dirname(os.path.abspath(file)) '''

然后像这样分配我的资源文件:

''' picture_jpeg_path = os.path.join(application_path, 'picture.jpeg') sound_wav_path = os.path.join(application_path, 'sound.wav') '''

然后我在脚本中用上面的新名称重命名了我的 .jpeg 和 .wav。应用程序现在运行良好。

© www.soinside.com 2019 - 2024. All rights reserved.