首次运行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文件夹始终无法生成。
解决步骤
彻底清理缓存与临时文件:
- 删除项目根目录下的
__pycache__文件夹及所有.pyc、.pyo文件; - 删除py2app缓存目录
~/Library/Caches/py2app。
- 删除项目根目录下的
修正setup.py配置:
tkinter、random、json为Python内置模块,py2app会自动处理,无需手动指定,仅保留第三方模块pyperclip即可:OPTIONS = { 'argv_emulation': True, 'iconfile':"logo.png", 'packages': ['pyperclip'] }用虚拟环境隔离依赖:
- 创建并激活虚拟环境:
python3 -m venv venv source venv/bin/activate - 在虚拟环境内安装依赖:
pip install py2app pyperclip - 重新执行打包命令:
python setup.py py2app
- 创建并激活虚拟环境:
强制清理构建缓存后打包:
运行打包命令时添加--clean参数:python3 setup.py py2app --clean检查并修复目录权限:
确保项目目录及缓存目录有读写权限,执行命令修复:chmod -R 755 /Users/cjsander/Desktop/Password
内容的提问来源于stack exchange,提问作者Cade
相关产品推荐
相关产品推荐

