You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Mac OS系统中使用Python解压.app.zip格式文件

Mac OS下Python解压.app.zip后程序损坏的解决方法

macOS中的.app并非单文件,而是*程序包(Bundle)*结构,其可运行性依赖内部文件的执行权限、符号链接、扩展属性等元信息。默认使用zipfile.extractall()解压时会丢失这些元信息,导致.app被识别为零散文件夹无法正常启动。


方案1:zipfile手动恢复文件权限

如果压缩包为标准zip格式,没有存储Mac专属元数据,可在解压时手动恢复原文件权限:

import zipfile
import os

with zipfile.ZipFile(bin_file_path, 'r') as zip_ref:
    for file_info in zip_ref.infolist():
        # 提取文件到目标目录
        zip_ref.extract(file_info, temp_dir)
        # 恢复zip中存储的Unix文件权限
        extracted_file_path = os.path.join(temp_dir, file_info.filename)
        os.chmod(extracted_file_path, file_info.external_attr >> 16)

方案2:调用系统原生unzip工具(兼容性最优)

如果压缩包包含Mac特有的资源分叉、扩展属性等信息,直接调用系统自带的unzip命令可完整保留所有属性,不会损坏.app结构:

import subprocess

subprocess.run(
    ["unzip", "-q", bin_file_path, "-d", temp_dir],
    check=True,
    capture_output=True
)

参数说明:

  • -q:开启静默解压,不输出过程日志
  • -d:后面跟解压目标目录路径

验证说明

解压完成后可在Finder中查看目标目录,正常识别为.app程序包即代表解压成功,若首次打开提示“无法验证开发者”,右键点击.app选择「打开」即可跳过校验启动。

内容的提问来源于stack exchange,提问作者Sergey Ilchenko

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.20 18:45:05