【问题标题】:Error loading Python lib with PyInstaller on MacOS在 MacOS 上使用 PyInstaller 加载 Python 库时出错
【发布时间】:2020-06-25 22:56:03
【问题描述】:

我正在尝试将一些 python 打包到 MacOS (10.14.5) 上的可执行文件中。我能够创建可执行文件,但执行生成的 dist/hello_world 可执行文件会出现以下错误:

[55240] Error loading Python lib '/var/folders/yh/6_6mb2y96kg0gnb_nh9r2zrr0000gp/T/_MEIwUMw4X/Python': dlopen: dlopen(/var/folders/yh/6_6mb2y96kg0gnb_nh9r2zrr0000gp/T/_MEIwUMw4X/Python, 10): no suitable image found.  Did find:
    /var/folders/yh/6_6mb2y96kg0gnb_nh9r2zrr0000gp/T/_MEIwUMw4X/Python: code signature invalid for '/var/folders/yh/6_6mb2y96kg0gnb_nh9r2zrr0000gp/T/_MEIwUMw4X/Python'

我的机器正在运行使用从https://www.python.org/ 下载的 Mac 安装程序安装的 Python 3.7.7

目前,我尝试打包的脚本仅包含print('hello world!'),而我使用的打包命令是pyinstaller -F hello_world.py

【问题讨论】:

    标签: python python-3.x macos pyinstaller


    【解决方案1】:

    我成功使用pyenv 并使用启用框架选项安装了特定版本的python:

    env PYTHON_CONFIGURE_OPTS="--enable-framework" pyenv install 3.7.6

    使用此版本的python(使用命令pyenv local 3.7.6 在hello_world.py 所在的文件夹中设置),使用pip 安装pyinstaller(以及您需要的任何其他模块)。然后用

    构建

    pyinstaller hello_world.py --onefile --clean --windowed

    这应该会给你一个正常工作的dist/hello_word。作为一个初出茅庐的python,我不知道为什么这与原始问题中的步骤相反。 (我认为 Mac OS 安装程序默认包含 Python.framework ——我确信我的无知在这里暴露了,因为这可能与上面的 PYTHON_CONFIGURE_OPTS 变量的作用有很大不同)。

    也可以在虚拟环境中完成所有这些操作(由pyenv-virtualenv 轻松管理)。

    【讨论】:

      【解决方案2】:

      最新版本的 Pyinstaller 仅支持 Python 2.7、3.5–3.7。如果你降级到 Python 3.7,它会起作用!

      【讨论】:

      • 谢谢罗宾。我用的是3.7.7,问题依旧
      • @A.Pine 尝试切换回 Python 3.7,该版本在 3.7.7 时对我有用。还是出了这个问题
      • 我正在运行 python 3.7 并且仍然遇到这个问题
      • @Shaw 现在他们已经更新了 PyInstaller,原因可能会有所不同。所以很遗憾,我对目前的情况一无所知。
      猜你喜欢
      • 2021-01-18
      • 1970-01-01
      • 1970-01-01
      • 2018-08-14
      • 2020-09-13
      • 1970-01-01
      • 2020-10-08
      • 2022-11-28
      • 2014-10-01
      相关资源
      最近更新 更多