AWS CDK项目执行cdk synth时出现JSON解码错误求助
环境版本信息
D:\AWS_PYTHON_CDK>npm --version 10.5.2 D:\AWS_PYTHON_CDK>node --version v20.12.2 D:\AWS_PYTHON_CDK>python --version Python 3.12.3 D:\AWS_PYTHON_CDK>aws --version aws-cli/2.15.40 Python/3.11.8 Windows/10 exe/AMD64 prompt/off D:\AWS_PYTHON_CDK>cdk --version 2.138.0 (build 6b41c8b)
项目依赖(requirements.txt)
aws-cdk-lib==2.138.0 constructs>=10.0.0,<11.0.0
执行
cdk synth时的报错堆栈 D:\AWS_PYTHON_CDK>cdk synth Traceback (most recent call last): File "D:\AWS_PYTHON_CDK\app.py", line 4, in <module> import aws_cdk as cdk File "C:\Users\abc\AppData\Local\Programs\Python\Python312\Lib\site-packages\aws_cdk\__init__.py", line 1511, in <module> from ._jsii import * File "C:\Users\abc\AppData\Local\Programs\Python\Python312\Lib\site-packages\aws_cdk\_jsii\__init__.py", line 21, in <module> __jsii_assembly__ = jsii.JSIIAssembly.load( ^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\abc\AppData\Local\Programs\Python\Python312\Lib\site-packages\jsii\_runtime.py", line 55, in load _kernel.load(assembly.name, assembly.version, os.fspath(assembly_path)) File "C:\Users\abc\AppData\Local\Programs\Python\Python312\Lib\site-packages\jsii\_kernel\__init__.py", line 299, in load self.provider.load(LoadRequest(name=name, version=version, tarball=tarball)) File "C:\Users\abc\AppData\Local\Programs\Python\Python312\Lib\site-packages\jsii\_kernel\providers\process.py", line 354, in load return self._process.send(request, LoadResponse) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\abc\AppData\Local\Programs\Python\Python312\Lib\site-packages\jsii\_kernel\providers\process.py", line 332, in send self._next_message(), _ProcessResponse ^^^^^^^^^^^^^^^^^^^^ File "C:\Users\abc\AppData\Local\Programs\Python\Python312\Lib\site-packages\jsii\_kernel\providers\process.py", line 251, in _next_message return json.loads(self._process.stdout.readline(), object_hook=ohook) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\abc\AppData\Local\Programs\Python\Python312\Lib\json\__init__.py", line 359, in loads return cls(**kw).decode(s) ^^^^^^^^^^^^^^^^^^^ File "C:\Users\abc\AppData\Local\Programs\Python\Python312\Lib\json\decoder.py", line 337, in decode obj, end = self.raw_decode(s, idx=_w(s, 0).end()) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\abc\AppData\Local\Programs\Python\Python312\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) Exception ignored in atexit callback: <bound method _NodeProcess.stop of <jsii._kernel.providers.process._NodeProcess object at 0x000002830E43D880>> Traceback (most recent call last): File "C:\Users\abc\AppData\Local\Programs\Python\Python312\Lib\site-packages\jsii\_kernel\providers\process.py", line 295, in stop self._process.stdin.close() OSError: [Errno 22] Invalid argument
解决步骤
- 调整Python版本:AWS CDK v2.138.0对Python 3.12的支持存在兼容性问题,建议降级到Python 3.11.x版本(与AWS CLI使用的Python版本一致更稳妥)。
- 重装依赖:先卸载现有相关包,再重新安装指定版本
pip uninstall -y aws-cdk-lib constructs jsii pip install -r requirements.txt - 验证Node.js版本:若问题仍存在,可尝试降级到Node.js 18.x LTS版本,规避版本兼容风险。
- 清理CDK缓存:执行
cdk clean后重新运行cdk synth。 - 检查路径与权限:确保项目目录无中文/特殊字符,当前用户对项目目录、Python安装目录有读写权限。
内容的提问来源于stack exchange,提问作者Ramesh Chander
相关产品推荐
相关产品推荐

