python - 在 MacOS 上使用 PyInstaller 加载 Python 库时出错

标签 python python-3.x macos pyinstaller

我正在尝试将一些 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

最佳答案

我成功使用了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 轻松管理)。

关于python - 在 MacOS 上使用 PyInstaller 加载 Python 库时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60678697/

相关文章:

python - 在对 apply() 的调用中添加重复的数据框行

python - 列表的名称在我循环时发生变化

python - 无法通过 ldap3 模块修改 'cn' 属性,Python 3.x

python - Numpy 将字母评估为整数

python - 添加带有计数的列

macos - bash 脚本中的符号链接(symbolic link)不起作用

python - 为什么模块数学称为 "built-in"?

python - "Fire and forget"来自 Python 脚本的进程

git 状态不能与 Virtualbox 共享文件夹一起正常工作

Xcode 导出 Mac 应用程序,无需开发人员程序