【发布时间】:2023-03-24 13:49:02
【问题描述】:
我正在尝试让 wxPython 应用程序作为 exe 运行。我听说 PyInstaller 现在优于 py2exe。我想包含脚本运行所需的 .ico 和两个 .png 文件。这个规范文件会是什么样子?我似乎在任何地方都找不到像样的例子。我安装了 PyInstaller,但在任何地方都找不到这个“makespec”。
【问题讨论】:
标签: python wxpython exe pyinstaller
我正在尝试让 wxPython 应用程序作为 exe 运行。我听说 PyInstaller 现在优于 py2exe。我想包含脚本运行所需的 .ico 和两个 .png 文件。这个规范文件会是什么样子?我似乎在任何地方都找不到像样的例子。我安装了 PyInstaller,但在任何地方都找不到这个“makespec”。
【问题讨论】:
标签: python wxpython exe pyinstaller
在我的 PyInstaller 项目中,我通常只需对 see if the app's frozen 进行运行时检查并相应地调整位图的路径。所以像这样处理 PyInstaller 和常规 Python 应用程序:
def app_path():
"""Returns the base application path."""
if hasattr(sys, 'frozen'):
# Handles PyInstaller
return os.path.dirname(sys.executable)
return os.path.dirname(__file__)
【讨论】:
检查sys.frozen 是一个非常好的方法。您还可以查看img2py,它可以让您将图像的二进制数据加载到 .py 文件中。之后,不必打开文件,而是可以导入它们。
【讨论】:
a = Analysis(['script.py'],
pathex=['D:\\source-control\\GITHUB\\projectname'],
hiddenimports=[],
hookspath=None,)
a.datas += [( 'images', r'C:\Users\igorl\Pictures\hzgJUXi5l4o.jpg', 'DATA')]
pyz = PYZ(a.pure)
exe = EXE(pyz,
a.scripts,
a.binaries,
a.zipfiles,
a.datas,
name=os.path.join('dist', 'script.exe'),
debug=False,
strip=None,
upx=True,
console=False )
【讨论】: