我有一个运行情节仪表板的脚本。当我把它打包成
pyinstaller --onefile script.py
并运行生成的.exe文件,我得到了错误消息:
FileNotFoundError: [Errno 2] No such file or directory: 'C:\\Users\\my_user\\AppData\\Local\\Temp\\_MEI161122\\dash_html_components\\package-info.json'
[5968] Failed to execute script
这里到底发生了什么,我该如何修复它?
发布于 2021-01-09 03:28:25
我认为解决方案是将该组件添加到specfile的datas
列表中。
...
datas=[('C:\\Users\\username\\anaconda3\\envs\\ms-mint\\lib\\site-packages\\dash_html_components', '.\\dash_html_components'), ...]
...
虽然我不确定。我停止使用--onefile
选项,因为启动应用程序的时间太长了。相反,我继续使用--onedir
。
完整的规范文件:
# -*- mode: python ; coding: utf-8 -*-
block_cipher = None
a = Analysis(['..\\scripts\\Mint.py'],
pathex=['C:\\Users\\username\\workspace\\ms-mint'],
binaries=[],
datas=[('C:\\Users\\username\\anaconda3\\envs\\ms-mint\\lib\\site-packages\\dash_html_components', '.\\dash_html_components'),
('C:\\Users\\username\\anaconda3\\envs\\ms-mint\\lib\\site-packages\\dash_table', '.\\dash_table'),
('C:\\Users\\username\\anaconda3\\envs\\ms-mint\\lib\\site-packages\\dash_core_components', '.\\dash_core_components'),
('C:\\Users\\username\\anaconda3\\envs\\ms-mint\\lib\\site-packages\\dash_renderer', '.\\dash_renderer'),
('C:\\Users\\username\\anaconda3\\envs\\ms-mint\\lib\\site-packages\\dash_bootstrap_components', '.\\dash_bootstrap_components'),
('C:\\Users\\username\\anaconda3\\envs\\ms-mint\\lib\\site-packages\\dash_html_components', '.\\dash_html_components'),
('C:\\Users\\username\\anaconda3\\envs\\ms-mint\\lib\\site-packages\\dash_extensions', '.\\dash_extensions'),
('C:\\Users\\username\\anaconda3\\envs\\ms-mint\\lib\\site-packages\\plotly', '.\\plotly'),
('C:\\Users\\username\\anaconda3\\envs\\ms-mint\\lib\\site-packages\\pyopenms\\share', '.\\pyopenms\\share'),
('C:\\Users\\username\\anaconda3\\envs\\ms-mint\\lib\\site-packages\\pymzml', '.\\pymzml'),
],
hiddenimports=['pkg_resources.py2_warn'],
hookspath=[],
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,
[],
exclude_binaries=True,
name='Mint',
debug=False,
bootloader_ignore_signals=False,
strip=False,
upx=True,
console=True )
coll = COLLECT(exe,
a.binaries,
a.zipfiles,
a.datas,
strip=False,
upx=True,
upx_exclude=[],
name='Mint')
https://stackoverflow.com/questions/60049673
复制相似问题