.app包,使用pyinstaller,不在其他Mac上运行

时间:2018-01-19 23:53:48

标签: python macos tkinter python-3.6 pyinstaller

我在使用pyinstaller制作的.app软件包时遇到一些麻烦,无法在另一个人的Mac上运行。

两台计算机都运行macOS 10.13.2和Python 3.6。

在我的Mac上运行就像运行.py文件时一样。

在另一个人的Mac上,图标会在托盘中弹出片刻并弹跳一次或两次然后消失。当它在尝试打开应用程序时保持打开状态时,它永远不会出现在强制退出窗口中。

这是spec文件:

# -*- mode: python -*-

block_cipher = None


a = Analysis(['Shadowmaster.py'],
             pathex=['/Users/jacob/Dropbox/Games/Shadowrun/Python/Shadowmaster'],
             binaries=[],
             datas=[],
             hiddenimports=['sys', 'webbrowser', 'random', 'decimal', 'collections', 'tkinter', 'tracback'],
             hookspath=[],
             runtime_hooks=[],
             excludes=[],
             win_no_prefer_redirects=False,
             win_private_assemblies=False,
             cipher=block_cipher)
pyz = PYZ(a.pure, a.zipped_data,
             cipher=block_cipher)
exe = EXE(pyz,
          a.scripts,
          exclude_binaries=True,
          name='Shadowmaster',
          debug=False,
          strip=False,
          upx=True,
          console=False , icon='icon.icns')
coll = COLLECT(exe,
               a.binaries,
               a.zipfiles,
               a.datas,
               strip=False,
               upx=True,
               name='Shadowmaster')
app = BUNDLE(coll,
             name='Shadowmaster.app',
             icon='icon.icns',
             bundle_identifier=None,
             info_plist={'CFBundleDisplayName': 'Shadowmaster',
                         'CFBundleName': 'Shadowmaster',
                         'CFBundleIdentifier': 'Shadowmaster',
                         'CFBundleExecutable': 'MacOS/Shadowmaster',
                         'CFBundleIconFile': 'icon.icns',
                         'CFBundleInfoDictionaryVersion': '6.0',
                         'CFBundlePackageType': 'APPL',
                         'CFBundleShortVersionString': '0.0.6',
                         'LSBackgroundOnly': '0',
                         'NSHighResolutionCapable': 'True'})

该程序有数千行,但这里是导入,我怀疑这可能是原因:

import sys
from webbrowser import open_new as open_browser
from random import SystemRandom
from time import sleep
import decimal
from collections import OrderedDict
import tkinter as tk
import tkinter.ttk as ttk
import traceback
import tkinter.messagebox

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

原来需要安装ActiveTCL 8.5的其他人。