首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在尝试使用python AWS CDK创建空堆栈时返回JSII错误

在尝试使用python AWS CDK创建空堆栈时返回JSII错误
EN

Stack Overflow用户
提问于 2020-11-05 09:38:15
回答 2查看 2.4K关注 0票数 2

aws在空堆栈上返回jsii错误。复制的步骤是在hello世界级别,这使我认为我有一个版本错配的地方。我已经重新安装了aws cli,cdk和nodejs。对找什么有什么建议吗?

复制步骤:

代码语言:javascript
复制
mkdir myfolder
cdk init --language python
.env\Scripts\activate.ps1
python -m pip install -r requirements.txt
cdk synth

返回错误和空堆栈:

代码语言:javascript
复制
(.env) p$[myfolder]> cdk synth                                                                                                                      d:\myfolder\.env\lib\site-packages\jsii\_embedded\jsii\jsii-runtime.js:13295
                    throw e;
                    ^

Error: EOF: end of file, read
    at Object.readSync (fs.js:592:3)
    at SyncStdio.readLine (d:\myfolder\.env\lib\site-packages\jsii\_embedded\jsii\jsii-runtime.js:13278:33)
    at InputOutput.read (d:\myfolder\.env\lib\site-packages\jsii\_embedded\jsii\jsii-runtime.js:13203:34)
    at KernelHost.run (d:\myfolder\.env\lib\site-packages\jsii\_embedded\jsii\jsii-runtime.js:13021:32)
    at Immediate.<anonymous> (d:\myfolder\.env\lib\site-packages\jsii\_embedded\jsii\jsii-runtime.js:13029:37)
    at processImmediate (internal/timers.js:461:21) {
  errno: -4095,
  syscall: 'read',
  code: 'EOF'
}
Resources:
  CDKMetadata:
    Type: AWS::CDK::Metadata
    Properties:
      Modules: aws-cdk=1.69.0,@aws-cdk/cloud-assembly-schema=1.69.0,@aws-cdk/core=1.69.0,@aws-cdk/cx-api=1.69.0,@aws-cdk/region-info=1.69.0,jsii-runtime=Python/3.7.4
    Metadata:
      aws:cdk:path: myfolder/CDKMetadata/Default
    Condition: CDKMetadataAvailable

环境

代码语言:javascript
复制
  - **CLI Version      :aws-cli/2.0.61 Python/3.7.7 Windows/10 exe/AMD64
  - **cdk Version:1.69.0 (build 2b474b9)
  - **Node.js Version:v14.15.0 
  - **OS               :Windows 10
  - **Language (Version):python 3.7.4  

当我第一次在cdk上启动时看到了这个错误。但是,“cdk synth”显示了一个堆栈,所以我按下了。我甚至能够'cdk部署‘简单的堆栈。最终,由于代码变得稍微复杂一些,jsii错误会阻止堆栈的创建。我创建的代码会在我的机器上抛出错误,但不会在其他机器上出错。使用来自其他开发人员的cdk代码不会在我的机器上同步或部署堆栈。

到目前为止,我已经重新安装了aws,node.js和cdk.有什么想法是jsii错误产生的原因,或者是如何修复它们?

EN

回答 2

Stack Overflow用户

发布于 2020-11-09 20:38:37

对于Windows上的AWS,AWS组记录的jsii中至少有一个错误。在jsiiruntime内部(确切地说,是第13278行),aws组有一个带有指向nodejs错误报告的链接的注释。我向aws报告了我的问题,这似乎是有关联的。他们复制了这个bug,并在nodejs上创建了一个bug报告。此bug报告具有指向其他错误报告的链接。https://github.com/aws/aws-cdk/issues/11314

但我还是需要一个解决办法。经过多次尝试和错误之后,以下两个解决方案应该适用于Windows上的AWS。

解决方案1:在站点-包中用1.12或1.13发行版替换jsii1.14.x发行版。将1.14替换为1.12或1.13后,错误停止。得到一个发行版是个诡计。你必须从没有升级或运行pip的人那里得到一个--这就是我所做的。

解决方案2:将开发环境从Windows移动到linux或mac上

票数 2
EN

Stack Overflow用户

发布于 2020-11-21 13:53:00

博士扩大了工作范围。( asked错误报告中提出了一个问题)。

解决方案1:替换jsii 1.14.x发行版

区文件夹: jsii包含在两个文件夹中

jsii和jsii-1.14.1 info info

用旧安装中的文件夹替换这两个文件夹- 1.12或1.13。

发行版文件夹可以在以下一个或两个位置找到:

区域位置虚拟环境: jsii发行版将在站点-packages目录中找到。示例:

. .env\lib\python3.8\site-packages

其中虚拟环境名称= .env,python = 3.8

区域位置非虚拟:,如果您没有创建虚拟环境,应该是这个位置。请注意,同样,python版本是路径的一部分。

C:\Program \Python37 37\Lib\site-packages

注意:由于某些原因,它们没有安装在这里。但是,这可能会改变,所以请记住这一点。C:\Users\yourusername\AppData\Roaming\Python\Python37\site-packages

解决方案2:迁移到linux

在windows中,安装WSL 2。

安装Ubuntu或您最喜欢的linux版本。

安装python使用您最喜欢的Windows IDE从Windows!我使用代码。如果我没记错的话,需要安装一个扩展。

警告:在Windows系统上运行python、cdk等文件时,我遇到了问题(例如: /mnt/d/project)。只需将回购复制到“纯”linux文件系统( ex:~/project)即可。我在linux端安装了git,并将我的文件作为一台独立的机器来维护。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64694569

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档