PyInstaller + Dash:找不到包-info.json

PyInstaller + Dash: could not locate package-info.json

我想使用 Dash 从 python 脚本制作一个单文件 exe。 我有一个使用烧瓶的类似应用程序,它可以工作。 使用 Dash 代替,当我 运行 生成的 exe 文件时,出现以下错误,我无法解决。 你能帮帮我吗?

我在 Temp 文件夹中遇到了完全相同的问题,我不知道具体原因。我不认为我找到了最好的解决方案,但我通过使用规范文件进行编译并将导致此错误的所有包(所有破折号包和 plotly)添加到 data 参数来解决它。

here 所述,您可以像 运行ning 的命令行指令一样为 运行 pyinstaller 创建一个规范文件:pyi-makespec options name.py [other scripts …],选项如 --onefile。 它将创建一个带有 Analysis 构造函数的规范文件,您可以在其中告诉 pyinstaller 在哪里搜索带有元组列表的任何包 datas=[('<path to the package>', '<name of the package>'), ...].

你的错误似乎来自于你的破折号所以像这样,这取决于你使用的破折号包在哪里(对我来说在 venv 中):

a = Analysis(['script.py'],
         pathex=[],
         binaries=[],
         datas=[('D:\xxxxxx\venv\Lib\site-packages\dash', 'dash')],
         hiddenimports=[],
         hookspath=[],
         hooksconfig={},
         runtime_hooks=[],
         excludes=[],
         win_no_prefer_redirects=False,
         win_private_assemblies=False,
         cipher=block_cipher,
         noarchive=False)

如果你使用其他破折号包,如 dbc 或 plotly,我认为你会遇到与这些包相同的错误,因此你也必须将它们的路径添加到规范文件中。