使用 pyinstaller 将 .json 文件添加到 exe 文件

Dhr*_*dal 1 python json pyinstaller

我正在使用 pyinstaleer 从 python 文件创建一个 .exe 文件,并且必须向其中添加一个 .json 文件。我以多种方式使用了 --add-data 参数,但它们返回了错误

Inp 1:pyinstaller -F --add-data“vocab.json”definition.py
Error1:pyinstaller:错误:参数--add-data:无效的add_data_or_binary值:'vocab.json'

Inp 2: pyinstaller -F --add-data "vocab.json;vocab.json"definition.py
Error2: 这使得 3 个文件夹 - dist、pycache 和 build 以及definition.spec 和definition.exe 文件一起出现。但是当我运行 exe 文件时,会打开一个 cmd 窗口,并收到此错误消息。错误 错误表示找不到 json,但它与 python 文件位于同一文件夹中。

Inp 3 : pyinstaller --add-path ".\vocab.json:." Definition.py
错误 3:pyinstaller:错误:无法识别的参数:--add-path

Inp4: pyinstaller --add-data ".\vocab.json:." Definition.py
错误 4:pyinstaller:错误:参数 --add-data:无效的 add_data_or_binary 值:'.\vocab.json:.'

Can*_*tin 5

Pyinstaller 文档(https://pyinstaller.readthedocs.io/en/stable/usage.html#options-group-what-to-bundle-where-to-search)说:

要添加到可执行文件的其他非二进制文件或文件夹。路径分隔符是特定于平台的,使用 os.pathsep (在 Windows 上为 ; 在大多数 UNIX 系统上为 :)。该选项可以多次使用。

您必须添加特定于平台的分隔符。对于 Windows 来说是;,对于 Linux 来说是:。

如果您使用的是 Windows,请尝试:

pyinstaller -F --add-data "vocab.json;."
Run Code Online (Sandbox Code Playgroud)

如果您使用的是 Linux,请尝试:

pyinstaller -F --add-data "vocab.json:."
Run Code Online (Sandbox Code Playgroud)