【发布时间】: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