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

Mac M1下py2app打包应用libffi.8.dylib导入错误求助

解决方案:M1 Mac py2app打包后libffi依赖缺失问题

以下是针对你遇到的_ctypes.so无法加载libffi.8.dylib问题的针对性解决方法:

方案一:手动修正依赖路径(快速临时修复)

  1. 复制Homebrew中的libffi到App的Frameworks目录:
    cp /opt/homebrew/opt/libffi/lib/libffi.8.dylib /Users/raphaelpbp/Desktop/PP/dist/test_generator.app/Contents/Frameworks/
    
  2. 修改_ctypes.so的依赖指向,使其指向App包内的libffi:
    install_name_tool -change @rpath/libffi.8.dylib @executable_path/../Frameworks/libffi.8.dylib /Users/raphaelpbp/Desktop/PP/dist/test_generator.app/Contents/Resources/lib/python3.9/lib-dynload/_ctypes.so
    
  3. 修正libffi自身的路径标识,避免后续依赖问题:
    install_name_tool -id @executable_path/../Frameworks/libffi.8.dylib /Users/raphaelpbp/Desktop/PP/dist/test_generator.app/Contents/Frameworks/libffi.8.dylib
    

方案二:修改setup.py强制嵌入libffi(打包时彻底解决)

在你的setup.py中添加参数,让py2app自动将libffi打包进App,并配置正确的运行路径:

from setuptools import setup

APP = ['你的主脚本文件名.py']
OPTIONS = {
    'argv_emulation': True,
    # 指定要嵌入的libffi库路径
    'frameworks': ['/opt/homebrew/opt/libffi/lib/libffi.8.dylib'],
    'plist': {
        # 配置运行时的框架路径
        'LSEnvironment': {
            'DYLD_FRAMEWORK_PATH': '@executable_path/../Frameworks'
        }
    }
}

setup(
    app=APP,
    options={'py2app': OPTIONS},
    setup_requires=['py2app'],
)

重新打包(先试用开发模式验证):

export LDFLAGS="-L/opt/homebrew/opt/libffi/lib"
export CPPFLAGS="-I/opt/homebrew/opt/libffi/include"
export PKG_CONFIG_PATH="/opt/homebrew/opt/libffi/lib/pkgconfig"
python setup.py py2app -A

方案三:切换到Brew/Python官方版本(规避Conda兼容性问题)

Conda的Python在M1架构下可能存在链接库适配问题,尝试使用Brew安装的Python:

  1. 安装Brew版Python:
    brew install python
    
  2. 创建并激活虚拟环境:
    python3 -m venv py2app_env
    source py2app_env/bin/activate
    
  3. 安装依赖和py2app:
    pip install 你的项目依赖包 py2app
    
  4. 直接打包(无需额外环境变量,Brew Python已正确关联libffi):
    python setup.py py2app
    

验证方法:运行App包内的可执行文件dist/test_generator.app/Contents/MacOS/test_generator,检查是否仍有导入错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 23:12:23