使用py2app构建基于python的Mac应用程序,创建安装程序,生成失败的安装程序

时间:2017-12-21 20:57:11

标签: python macos installer py2app

这类似于py2app with native python 2.6,但又不同,它仍然是一个谜题。

环境:Mac OS 10.8& 10.11,Python 2.7.6,py2app 0.14

我在Mac OS 10.8上使用py2app从python创建了一个Mac应用程序包。这似乎工作正常。然后,我使用pkgbuildproductbuild构建安装程序包。在我尝试使用安装程序安装软件包之前,这似乎构建没有错误。

我在MacOS 10.11上运行安装程序(它也必须在MacOS 10.8-10.13上运行)。安装失败,install.log中包含以下内容:

Dec 21 15:14:46 Erics-10-11-Mac-VM shove[30757]: [src=nonrestricted] /System/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7/pyconfig.h: unable to remove flag 0x80000 (error 1)
Dec 21 15:14:46 Erics-10-11-Mac-VM shove[30757]: [source=file] failed _RelinkFile(/var/folders/zz/zyxvpxvq6csfxvn_n0000000000000/C/PKInstallSandboxManager/3BE46873-2E16-4787-81A4-335FB1DCB67B.activeSandbox/Root/Applications/MyApp.app/Contents/Resources/include/python2.7/pyconfig.h, /System/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7/pyconfig.h): Operation not permitted
Dec 21 15:14:46 Erics-10-11-Mac-VM shove[30757]: srcPath = /var/folders/zz/zyxvpxvq6csfxvn_n0000000000000/C/PKInstallSandboxManager/3BE46873-2E16-4787-81A4-335FB1DCB67B.activeSandbox/Root/Applications/MyApp.app/Contents/Resources/include/python2.7/pyconfig.h NSFileOwnerAccountID=0 NSFileHFSTypeCode=0 NSFileSystemFileNumber=1025119 NSFileExtensionHidden=0 NSFileSystemNumber=16777219 NSFileSize=36515 NSFileGroupOwnerAccountID=0 NSFileOwnerAccountName=root NSFileCreationDate=2017-12-21 20:12:33 +0000 NSFilePosixPermissions=420 NSFileHFSCreatorCode=0 NSFileType=NSFileTypeRegular NSFileGroupOwnerAccountName=wheel NSFileReferenceCount=1 NSFileModificationDate=2017-12-21 20:12:33 +0000

问题似乎是安装程序想要将Contents/Resources/include/pyconfig.h复制(或执行某些操作)到/System/Library/Frameworks/Python.framework...,但不允许该操作。由于/System/上的MacOS系统完整性保护,可能不允许这样做。

这提出了几个问题:

  1. 安装程序通过将pyconfig.h复制到系统目录(明确禁止?)来尝试做什么?此外,那里已经有pyconfig.h
  2. 我该怎么做才能解决这个问题?不知何故告诉py2app不要将pyconfig.h放在include文件夹中?告诉安装人员不要将其复制到System文件夹中?有解决方法吗?禁用SIP不是一种选择。
  3. 请注意,我限制在MacOS 10.8上构建,并安装在MacOS 10.8 - 10.3的任意系统上。

    感谢任何和所有帮助。

0 个答案:

没有答案