【问题标题】:Python exec with Pip pyinstaller not working on MacOS带有 Pip pyinstaller 的 Python exec 无法在 MacOS 上运行
【发布时间】:2021-11-01 08:33:06
【问题描述】:

我几乎没有编码经验,但正在为一个研究论文项目编码。我试图让我的代码可执行。我进入终端并将我的目录更改为我的 .py 所在的位置。然后我输入:

pyinstaller --onefile --add-binary='/System/Library/Frameworks/Tk.framework/Tk':'tk' --add-binary='/System/Library/Frameworks/Tcl.framework/Tcl ':'tcl' myscript.py

事情发生了,我在目录中也得到了一个 dist 文件夹!但是,当我进入 dist 并单击 myscript.exec 时,它会快速打开和关闭,我会在终端窗口中看到它:

默认的交互式 shell 现在是 zsh。 要更新您的帐户以使用 zsh,请运行 chsh -s /bin/zsh。 更多详情,请访问https://support.apple.com/kb/HT208050。 dyn188-186:~ user$ /Users/user/Desktop/PATH \ Programs/dist/absolutetest ;出口; 登出 正在保存会话... ...复制共享历史记录... ...保存历史记录...截断历史记录文件... ...完成。

[处理完成]

发生了什么事?!我以为我已经很接近解决这个问题了。我相信代码在 Python 3.9 中,但是当我输入时:

python--版本 要么 python3--版本

进入终端,它分别显示 Python 2.7.16 和 3.9.2。我也附上了我的 SPEC(我不知道那是什么,但我已经阅读了很多论坛并且人们也附上了它)。

请提出问题,我会尝试任何事情!谢谢!

# -*- mode: python ; coding: utf-8 -*-


block_cipher = None


a = Analysis(['absolutetest.py'],
             pathex=['/Users/user/Desktop/PATH'],
             binaries=[('/System/Library/Frameworks/Tk.framework/Tk', 'tk'), ('/System/Library/Frameworks/Tcl.framework/Tcl', 'tcl')],
             datas=[],
             hiddenimports=[],
             hookspath=[],
             hooksconfig={},
             runtime_hooks=[],
             excludes=[],
             win_no_prefer_redirects=False,
             win_private_assemblies=False,
             cipher=block_cipher,
             noarchive=False)
pyz = PYZ(a.pure, a.zipped_data,
             cipher=block_cipher)

exe = EXE(pyz,
          a.scripts,
          a.binaries,
          a.zipfiles,
          a.datas,  
          [],
          name='absolutetest',
          debug=False,
          bootloader_ignore_signals=False,
          strip=False,
          upx=True,
          upx_exclude=[],
          runtime_tmpdir=None,
          console=True,
          disable_windowed_traceback=False,
          target_arch=None,
          codesign_identity=None,
          entitlements_file=None )

【问题讨论】:

  • 什么错误?它退出干净。
  • @RichardBarber 我的问题是我的程序根本没有保持打开状态。在瞬间,它执行并关闭。我试图让程序保持打开状态,直到我的实际代码结束。这有意义吗?
  • 它干净地退出了,没有错误,不是吗?
  • @RichardBarber 我不太确定你在说什么。我得到的输出发布在上面。没有错误消息,但程序不会保持打开状态。我试图让它在运行 .exe 文件时保持打开状态
  • @RichardBarber 是的!我的程序打开一个 tkinter 窗口,它是一个简单的按钮和基于文本的游戏/程序。这是我正在做的一项研究项目

标签: python macos pip pyinstaller executable


【解决方案1】:

我昨天遇到了类似的问题,直到我在命令提示符下运行以下代码:

Pip uninstall typing

之后,我在 cmd 中运行 pyinstaller 命令

pyinstaller --onefile myFile.py

其中 myFile 是文件的名称。

确保您在 CLI 中运行 pyinstaller 命令

得知我的系统操作系统是 Windows 10 pro

【讨论】:

  • 谢谢,@CEO!你对 MacOS 有什么想法吗?
  • @TheLaw 你试过我建议的方法了吗?您在 macOS 上使用的是 pip install 还是 sudo install?如果是 sudo,那么你需要做 sudo 卸载输入
  • 您建议出于何种目的通过 pip 卸载 typing
  • pip 卸载打字模块,而不是 pip 安装它。如果他尝试,他会告诉你结果@RichardBarber 先生
  • @CEO 我刚刚尝试了您的建议,使用“Pip 卸载键入”,然后立即使用“pyinstaller --onefile myFile.py”。我得到了和以前一样的结果。它执行,但我的程序永远不会打开:(
猜你喜欢
  • 2021-05-21
  • 2022-01-12
  • 1970-01-01
  • 1970-01-01
  • 2016-02-10
  • 1970-01-01
  • 2017-09-23
  • 1970-01-01
  • 2019-08-17
相关资源
最近更新 更多