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

使用py2app打包PySide6项目时遇init_import_site导入错误求助

PySide6项目py2app打包macOS应用报错的解决方法

问题根源

这个错误是因为py2app打包时引入了系统Python的sitecustomize.py,该文件在site模块未完全初始化时就尝试修改其PREFIXES属性,触发了循环导入。

解决方法

  • 临时重命名系统sitecustomize文件
    找到报错里的sitecustomize.py路径:/opt/homebrew/Cellar/python@3.10/3.10.9/Frameworks/Python.framework/Versions/3.10/lib/python3.10/sitecustomize.py,将其重命名为sitecustomize.bak,然后重新执行打包命令python3 setup.py py2app -A。打包完成后再把文件名改回去即可。

  • 打包时添加--site-packages参数
    执行打包命令时加上--site-packages,明确指定仅打包项目依赖的包,避免引入系统的site自定义文件:

    python3 setup.py py2app -A --site-packages
    
  • 在setup.py中配置排除sitecustomize
    修改你的setup.py,在setup函数的options里添加排除规则:

    from setuptools import setup
    
    APP = ['main.py']
    DATA_FILES = []
    OPTIONS = {
        'py2app': {
            'exclude': ['sitecustomize'],
            # 其他py2app配置项
        }
    }
    
    setup(
        app=APP,
        data_files=DATA_FILES,
        options=OPTIONS,
        setup_requires=['py2app'],
    )
    

    然后重新执行打包命令。

  • 使用干净的虚拟环境打包
    用Python自带的venv创建独立虚拟环境,避免系统site配置干扰:

    1. 创建虚拟环境:
      python3 -m venv venv
      
    2. 激活虚拟环境:
      source venv/bin/activate
      
    3. 安装依赖:
      pip install pyside6 py2app
      
    4. 在虚拟环境中执行打包命令:
      python3 setup.py py2app -A
      

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 07:05:21