这类似于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应用程序包。这似乎工作正常。然后,我使用pkgbuild
和productbuild
构建安装程序包。在我尝试使用安装程序安装软件包之前,这似乎构建没有错误。
我在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系统完整性保护,可能不允许这样做。
这提出了几个问题:
pyconfig.h
复制到系统目录(明确禁止?)来尝试做什么?此外,那里已经有pyconfig.h
。py2app
不要将pyconfig.h
放在include
文件夹中?告诉安装人员不要将其复制到System
文件夹中?有解决方法吗?禁用SIP
不是一种选择。请注意,我限制在MacOS 10.8上构建,并安装在MacOS 10.8 - 10.3的任意系统上。
感谢任何和所有帮助。