pyinstaller找不到添加的文件-Mac OS

时间:2020-04-17 18:25:48

标签: python macos add pyinstaller

我正在尝试使用pyinstaller 3.6在Mac OS Catalina 10.15上创建基于python 3.7.7的应用程序。我使用Homebrew和pyinstaller和pip安装了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

它运行良好,并且已打开应用程序。

当我在pyinstaller指令中添加选项--nocnosole时,情况相同:

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提供的有关添加数据的文档,但我什么都没找到。

1 个答案:

答案 0 :(得分:0)

这不是一个python问题,而是一个Mac问题。在Mac上启动应用程序时,启动该应用程序的目录实际上是“ /.app/Contents/MacOS/”。我的猜测是,要么您需要将资源目录放置在该位置,以便应用程序启动时就可以找到它,或者您需要找到一种使用直接路径而不是它看上去相对路径的方法。重新使用。我对pyinstaller不太熟悉,但是鉴于您上面使用的语法,我的猜测应该是这样的:

pyinstaller --add-data /Users/user/Desktop/Project/resources/*:/LibraryDir/PythonStuff/resources /Users/user/Desktop/Project/GUI.py