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

首次运行py2app遇Error 17文件已存在问题求助

py2app打包时出现Errno 17文件已存在错误的解决方法

问题描述

此前用py2app打包其他应用无异常,现在打包自制简易密码桌面应用时失败。setup配置代码如下:

from setuptools import setup

APP = ['main.py']

OPTIONS = {
    'argv_emulation': True,
    'iconfile':"logo.png",
    'packages': ['tkinter', 'random', 'json', 'pyperclip']
 }
setup(
    app=APP,
    options={'py2app': OPTIONS},
    setup_requires=['py2app'],
 )

运行Python 3 setup.py py2app后终端报错:

/Users/cjsander/Desktop/Password/build/bdist.macosx-10.9-universal2/python3.12-      standalone/app/collect/typing_extensions-4.12.2.dist-info/METADATA

error: [Errno 17] File exists: '/Users/cjsander/Desktop/Password/build/bdist.macosx-10.9-   universal2/python3.12-standalone/app/collect/packaging-24.1.dist-info'

尝试更换文件位置、删除旧的dist和build文件夹、卸载重装py2app(含不更新安装)、打包其他代码文件,均出现相同错误,即便目标文件实际不存在也报错,dist文件夹始终无法生成。

解决步骤

  • 彻底清理缓存与临时文件:

    1. 删除项目根目录下的__pycache__文件夹及所有.pyc、.pyo文件;
    2. 删除py2app缓存目录~/Library/Caches/py2app。
  • 修正setup.py配置:
    tkinter、random、json为Python内置模块,py2app会自动处理,无需手动指定,仅保留第三方模块pyperclip即可:

    OPTIONS = {
        'argv_emulation': True,
        'iconfile':"logo.png",
        'packages': ['pyperclip']
     }
    
  • 用虚拟环境隔离依赖:

    1. 创建并激活虚拟环境:
      python3 -m venv venv
      source venv/bin/activate
      
    2. 在虚拟环境内安装依赖:
      pip install py2app pyperclip
      
    3. 重新执行打包命令:
      python setup.py py2app
      
  • 强制清理构建缓存后打包:
    运行打包命令时添加--clean参数:

    python3 setup.py py2app --clean
    
  • 检查并修复目录权限:
    确保项目目录及缓存目录有读写权限,执行命令修复:

    chmod -R 755 /Users/cjsander/Desktop/Password
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 17:52:05