简体   繁体   English

AWS CDK python 客户端在使用 cdk deploy 时出错

[英]AWS CDK python client giving error with cdk deploy

My stack:我的堆栈:

  • python 3.6蟒蛇 3.6
  • Node.js 11.3.0 Node.js 11.3.0
  • jsii-0.20.11 (automatically installed when aws cdk is installed via npm) jsii-0.20.11(通过npm安装aws cdk时自动安装)

I just tried cdk init and then did pip install -e .我只是尝试了cdk init然后做了pip install -e

After that, I did cdk deploy and it gives me the following error:之后,我做了cdk deploy ,它给了我以下错误:

Traceback (most recent call last):
  File "app.py", line 3, in <module>
    from aws_cdk import core
  File "C:\Users\sgoud12\myfolder\myprojects\myapp\cdk\.env\lib\site-packages\aws_cdk\core\__init__.py", line 1967, in <module>
    class DependableTrait(metaclass=jsii.JSIIAbstractClass, jsii_type="@aws-cdk/core.DependableTrait"):
TypeError: __new__() got an unexpected keyword argument 'jsii_type'
Subprocess exited with error 1

(.env) C:\Users\sgoud12\myfolder\myprojects\myapp\cdk>
(.env) C:\Users\sgoud12\myfolder\myprojects\myapp\cdk>fs.js:122
    throw err;
    ^

Error: EOF: end of file, read
    at Object.readSync (fs.js:517:3)
    at SyncStdio.readLine (C:\Users\sgoud12\myfolder\myprojects\myapp\cdk\.env\lib\site-packages\jsii\_embedded\jsii\jsii-runtime.js:13350:25)
    at InputOutput.read (C:\Users\sgoud12\myfolder\myprojects\myapp\cdk\.env\lib\site-packages\jsii\_embedded\jsii\jsii-runtime.js:13300:34)
    at KernelHost.run (C:\Users\sgoud12\myfolder\myprojects\myapp\cdk\.env\lib\site-packages\jsii\_embedded\jsii\jsii-runtime.js:7231:32)
    at Immediate.setImmediate (C:\Users\sgoud12\myfolder\myprojects\myapp\cdk\.env\lib\site-packages\jsii\_embedded\jsii\jsii-runtime.js:7239:37)
    at processImmediate (timers.js:632:19)

It usually means some kind of versions missmarch: aws-cdk in npm and aws-cdk in python.它通常意味着某种版本missmarch:npm 中的aws-cdk 和python 中的aws-cdk。 Given that it's a pretty old question I suppose updating all packages or even reinstall the environment should help.鉴于这是一个非常古老的问题,我认为更新所有软件包甚至重新安装环境应该会有所帮助。

There are mentions of a similar problem in the official aws-cdk bug tracker:官方 aws-cdk 错误跟踪器中提到了类似的问题:

https://github.com/aws/aws-cdk/issues/3349 https://github.com/aws/aws-cdk/issues/3349

https://github.com/aws/aws-cdk/issues/3293 https://github.com/aws/aws-cdk/issues/3293

I agree, this is frustrating and hard to find a fix for.我同意,这令人沮丧并且很难找到解决方法。 Using the links from @Trilliput使用来自@Trilliput 的链接

My Steps:我的步骤:

  1. Uninstall pip卸载pip
  2. Update homebrew更新自制软件
  3. Remove the aws cli删除 aws cli
  4. Reinstall the aws cli重新安装 aws cli
  5. uninstall aws cdk卸载 aws cdk
  6. reinstall aws cdk重新安装 aws cdk

Commands:命令:

sudo pip uninstall pip
brew update
sudo rm /usr/local/bin/aws
sudo rm /usr/local/bin/aws_completer
sudo rm -rf /usr/local/aws-cli
curl "https://awscli.amazonaws.com/AWSCLIV2.pkg" -o "AWSCLIV2.pkg"
sudo installer -pkg AWSCLIV2.pkg -target /
pip3 uninstall aws-cdk.cdk
pip3 install aws-cdk.cdk --use-feature=2020-resolver

That didn't work as I hoped, so I used all of these commands below.这并没有像我希望的那样工作,所以我使用了下面的所有这些命令。 I called it to scorched earth reinstall:我叫它焦土重装:

sudo pip uninstall pip
brew update
sudo rm /usr/local/bin/aws
sudo rm /usr/local/bin/aws_completer
sudo rm -rf /usr/local/aws-cli
brew uninstall node
brew uninstall pyenv

# CLOSE your terminal window and open a NEW terminal window.  
# when you run [which python] you should get /usr/bin/python
# run these commands to remove node and npm

https://gist.github.com/TonyMtz/d75101d9bdf764c890ef

curl "https://awscli.amazonaws.com/AWSCLIV2.pkg" -o "AWSCLIV2.pkg"
sudo installer -pkg AWSCLIV2.pkg -target /

curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
python get-pip.py
python3 get-pip.py

brew install python3

# old CDK
pip3 uninstall aws-cdk.cdk

#new CDK
pip3 uninstall aws-cdk.core

# NEW CDK
pip3 install aws-cdk.core

#pip3 install aws-cdk.core --use-feature=2020-resolver

# reinstall aws cdk
npm install -g aws-cdk
npm install -g npm@7.0.13
sudo npm install -g npm@7.0.13
npm install -g aws-cdk
sudo npm install -g aws-cdk
sudo -i
sudo npm install -g aws-cdk
cdk --version

将 python 版本从 3.6 提升到 3.7.5 对我来说就像一个魅力

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM