我使用 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
有什么建议吗?
对我有用的是 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。应用程序现在运行良好。