首页 > 解决方案 > 如何从 .py 文件和图像目录创建 .app 文件

问题描述

我有一个程序可以从使用 pyinstaller 创建的 .py 文件和 .exe 文件中正常工作(使游戏显示来自资产文件夹中 5 个文件夹的图像,该文件夹与 .py 文件位于同一位置。这是要获取的代码我的图像。

    for path in glob.glob('assets/*/'):  # In all folders in 'assets':
        for picture in glob.glob(f'{path}*.png'):  # For all images in path:
            screen = pygame.transform.scale(pygame.image.load(picture), (100,100))
            pictures.append(screen)

我的问题是制作我的程序的mac版本。我创建了一个 mac 虚拟机,下载了 python 和 pyinstaller,传输了文件(前面提到的 main.py 和 assets 文件夹)并在包含 main.py 的目录中的控制台中运行以下内容:

pyinstaller main.py

我还尝试添加 --onefile 和 --windowed 标签(单独和一起)并将 main.app 文件移动到与 main.py 相同的目录中,但它无法运行,从控制台打开它时出现以下错误

LSOpenURLsWithRole() failed with error -10810 for the file /Users/username/Desktop/main/main.app. 

我还尝试使用 py2app 并在 main.py 目录中的控制台中运行以下命令

% py2applet --make-setup main.py 
% nano setup.py 
% python3 setup.py py2app -A 

这创建了 main.app 并让我运行它,它打开了我的应用程序,但没有使用其中的任何图像,就好像它们不可用一样。

我还尝试将DATA_FILES = []setup.py 中的所有内容编辑为以下所有内容,但均未成功:

'assets'
'assets/'
'assets/*'
'assets/**'
'assets/*/'
'assets/*/*'
'assets/*/*.png'
'*'

如果您需要任何其他信息或有任何解决方案来使用 pyinstaller 或 py2app 为我的程序制作 .app 文件并使用我的“资产”目录中的目录中的图像,请告诉我。

提前致谢

标签: pythonmacospyinstallerpy2app.app

解决方案


推荐阅读