首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Esky冻结/打包Cocoa PyObjC Python应用程序

使用Esky冻结/打包Cocoa PyObjC Python应用程序
EN

Stack Overflow用户
提问于 2015-06-29 22:01:57
回答 1查看 189关注 0票数 0

因此,我试图为我的独立OSX应用程序构建一个基于PyObjC的自动更新功能。它的工作原理很棒,只需通过py2app将其打包,但作为实现更新功能的一部分,我尝试将其冻结在Esky中。

据我所知,这是Esky的setup.py格式。我不知道如何让Esky将我的.Xib文件的名称传递给py2app。下面是我的直接py2app setup.py的样子,成功地包含了GUI所需的.Xib文件:

setup.py for Py2app

代码语言:javascript
复制
from setuptools import setup

APP = ['MyApp.py']
DATA_FILES = ['MyApp.xib']
OPTIONS = {'argv_emulation': False, 'packages' : ['PIL']}

setup(
    app=APP,
    data_files=DATA_FILES,
    options={'py2app': OPTIONS},
    setup_requires=['py2app'],
    iconfile="MyApp.icns"
)

环顾其他人的帖子,看起来您可以通过稍微不同的结构的Esky setup.py将设置传递给setup.py,但在我的一生中,我无法弄清楚将.Xib文件从Esky传递给py2app的确切结构。

setup.py for Esky

代码语言:javascript
复制
from esky import bdist_esky
from distutils.core import setup

setup(name="MyApp",
      version="1.3.3",
      iconfile="MyApp.icns",
      data_files=['MyApp.xib'],
      scripts=["MyApp.py","midheaven.py"],
      options={"bdist_esky":{
      "includes":["PIL"],
      "excludes":['pydoc'],
      "freezer_module": "py2app",
      "freezer_options": {
                "plist": {
                    'argv_emulation': False,
                    'packages': ['PIL'],
                },
                "data_files": ['MyApp.xib'],
            },
      },
      },

     )

所有软件包都没有错误,但当然,如果我试图运行应用程序的Esky冻结,它就会立即崩溃。我肯定这是因为它没有正确地附加.Xib图形用户界面。有人有这方面的经验,或者应该如何格式化这方面的想法?绝对愿意把这件事弄清楚,并把它放在这里为子孙后代服务。

EN

回答 1

Stack Overflow用户

发布于 2015-07-01 07:14:03

你是对的,艾斯基做了一些与你所期望的不一样的事情。查看演示/教程文件夹是什么让我走上了正确的道路。

代码语言:javascript
复制
setup(name="MyApp",
      data_files=[('', ['MyApp.xib']),
                 ('files', ['file1', 'file2']),
                 ('img', glob(r'.\img\*.*'))
                  ]
      ...

因此,您有很多元组,其中第一个条目是包中包含文件的路径,第二个是要放在其中的文件的可迭代性。

您可以删除选项dict中的第二个data_files实例。

更新

试一试

代码语言:javascript
复制
from esky.bdist_esky import Executable

executables = [Executable('example_gui.py', icon='myico.ico', gui_only=True,)]  

setup(
    scripts = executables
    ...
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31126334

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档