【发布时间】:2020-07-31 08:16:26
【问题描述】:
我正在尝试使用 pyinstaller 3.6 在 Mac OS Catalina 10.15 上创建一个基于 python 3.7.7 的应用程序。我使用 Homebrew 和带有 pip 的 pyinstaller 安装了 python。
这个名为 GUI.py 的 Python 代码需要五个图像,这些图像存储在一个名为“resources”的文件夹中,所有内容都在“Project”文件夹中。所以项目的结构如下:
项目:
- GUI.py
- 资源:
- image1.png
- image2.png
- image3.png
- image4.png
- image5.png
GUI.py 用于定位图像的路径类似于“resources/image1.png”、“resources/image2.png”等其余图像。
我打开一个终端并输入以下内容:
pyinstaller --add-data /Users/user/Desktop/Project/resources/*:resources /Users/user/Desktop/Project/GUI.py
然后创建 dist 和 build 文件夹以及 GUI.spec 文件。
当我转到 dist/GUI 文件夹并找到可执行文件时,问题出现了。我双击它打开我的应用程序,但出现以下错误:
FileNotFoundError: [Errno2] No such file or directory: 'resources/image1.png'
但是,如果我打开终端并转到 GUI 可执行文件所在的 dist/GUI 目录并手动执行它:
./GUI
它运行良好,应用程序已打开。
当我将选项 --nocnosole 添加到 pyinstaller 指令时,它也会发生同样的情况:
pyinstaller --add-data /Users/user/Desktop/Project/resources/*:resources --noconsole /Users/user/Desktop/Project/GUI.py
这会创建一个名为 GUI 的 Mac OS 应用程序,当我双击它时它不会打开。但是,和以前一样,如果我打开终端并转到 GUI/Contents/MacOS/,我会找到 GUI 可执行文件并手动执行它:
./GUI
然后它就可以正常工作了。
我不知道我是否正确添加了包含图像的资源文件夹,或者它是否是 pyinstaller 的 Mac OS 问题。
我添加了一些带有额外信息的注释:
- 我在 Windows 10 和 Ubuntu 18.04.1 中进行了相同的整个过程,并且运行良好。我可以创建包含在 dist 文件夹中的可执行文件并将其导出到其他计算机,它就可以工作了。
- 我使用不同的方式在 pyinstaller 命令中添加数据,但仍然无法正常工作:
pyinstaller --add-data /Users/user/Desktop/Project/:. /Users/user/Desktop/Project/GUI.py - 我遵循了Pyinstaller adding data files 中提供的解决方案,但没有任何效果
- python 应用程序是一个使用 tkinter、pyserial 和 PIL 的图形用户界面。另外,我使用了我在 pyinstaller 命令中使用 -p 选项添加的自定义包,但在这里省略了,因为它不是错误的来源。
我到处寻找解决方案,阅读 pyinstaller 提供的有关添加数据的文档,但我一无所获。
【问题讨论】:
-
最后解决了吗?如果是这样,你能分享一下诀窍吗?
标签: python macos add pyinstaller