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

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

我正在尝试使用pyinstaller 3.6在Mac OS Catalina 10.15上创建基于python 3.7.7的python应用程序。我使用Homebrew和pyinstaller和pip安装了python。

此Python代码名为GUI.py,需要将五个图像存储在一个名为“ 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提供的有关添加数据的文档,但我什么也没发现。

python macos add pyinstaller
1个回答
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
© www.soinside.com 2019 - 2024. All rights reserved.