PySide6:运行空py项目期间出现JSONDecoderError

问题描述 投票:0回答:1

我在 Qt Creator 中的 Qt 6.5.2 上创建了一个空的 Qt Quick 应用程序,然后按如下方式编辑 .pyproject:

{
    "files": [
        "main.py",
        "main.qml"
    ],
    "qmlImportPath": [
        "path/to/my/qml/directory"
    ]
}

构建项目后,出现异常:

Traceback (most recent call last):
  File "C:\Users\ASUS\Documents\Qt Project\untitled\venv\Lib\site-packages\PySide6\scripts\project.py", line 240, in <module>
    project = Project(project_file)
              ^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\ASUS\Documents\Qt Project\untitled\venv\Lib\site-packages\PySide6\scripts\project.py", line 58, in __init__
    self.project = ProjectData(project_file=project_file)
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\ASUS\Documents\Qt Project\untitled\venv\Lib\site-packages\PySide6\scripts\project\project_data.py", line 30, in __init__
    pyproject = json.load(pyf)
                ^^^^^^^^^^^^^^
  File "C:\Users\ASUS\anaconda3\envs\ml\Lib\json\__init__.py", line 293, in load
    return loads(fp.read(),
           ^^^^^^^^^^^^^^^^
  File "C:\Users\ASUS\anaconda3\envs\ml\Lib\json\__init__.py", line 346, in loads
    return _default_decoder.decode(s)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\ASUS\anaconda3\envs\ml\Lib\json\decoder.py", line 337, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\ASUS\anaconda3\envs\ml\Lib\json\decoder.py", line 355, in raw_decode
    raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

当我使用 Ctrl+z 撤消我编辑的内容时,异常仍然一致。

python qt qml qtquick2
1个回答
0
投票

感谢@ewokx的评论帮助,我现在已经解决了我的问题。

PySide6工具包基于解析.pyproject,这是一个json文件。然而,就我而言,在编辑 .pyproject 后,编辑器隐式地将 BOM 添加到文件的前面,这意味着 JSONDecoder 无法再将此文件识别为原始 json 文件。

删除BOM后,一切正常。

© www.soinside.com 2019 - 2024. All rights reserved.