繁体   English   中英

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

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

我的堆栈:

  • 蟒蛇 3.6
  • Node.js 11.3.0
  • jsii-0.20.11(通过npm安装aws cdk时自动安装)

我只是尝试了cdk init然后做了pip install -e

之后,我做了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)

它通常意味着某种版本missmarch:npm 中的aws-cdk 和python 中的aws-cdk。 鉴于这是一个非常古老的问题,我认为更新所有软件包甚至重新安装环境应该会有所帮助。

官方 aws-cdk 错误跟踪器中提到了类似的问题:

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

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

我同意,这令人沮丧并且很难找到解决方法。 使用来自@Trilliput 的链接

我的步骤:

  1. 卸载pip
  2. 更新自制软件
  3. 删除 aws cli
  4. 重新安装 aws cli
  5. 卸载 aws cdk
  6. 重新安装 aws cdk

命令:

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

这并没有像我希望的那样工作,所以我使用了下面的所有这些命令。 我叫它焦土重装:

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