簡體   English   中英

在亞馬遜上安裝 AWS CDK Linux 2

[英]Installing AWS CDK on Amazon Linux 2

根據此處的說明,應該可以在 CloudFormation 中安裝 CDK package 以進行 Python 開發。

我在 eu-west-2 中使用 t2.micro Amazon Linux 2: ami-0dd555eb7eb3b7c82 只是為了完整性。

運行指令 state: python -m pip install aws-cdk-lib這失敗並顯示"/usr/bin/python: No module named pip" ,但用 python3 替換 python 解決了問題,安裝完成時顯示以下消息:

Installing collected packages: attrs, typing-extensions, cattrs, six, python-dateutil, jsii, publication, constructs, aws-cdk-lib
Successfully installed attrs-21.4.0 aws-cdk-lib-2.13.0 cattrs-1.10.0 constructs-10.0.69 jsii-1.54.0 publication-0.0.3 python-dateutil-2.8.2 six-1.16.0 typing-extensions-4.1.1

此外,當在 python3 解釋器中執行 >>>help('modules') 現在顯示 aws_cdk - 因此我假設一切都很好!

說明表明下一步是使用導入運行 python - 所以我創建了這個:

#!/usr/bin/python3

import aws_cdk
print('hello')

但是,運行它會返回很多錯誤消息。 我已經着手查看提到的文件並試圖找出我做錯了什么,但我已經走到了死胡同。 我想知道是否有人有任何想法?

Traceback (most recent call last):
  File "/usr/lib64/python3.7/importlib/resources.py", line 188, in path
    yield Path(reader.resource_path(resource))
  File "/usr/local/lib/python3.7/site-packages/jsii/_runtime.py", line 43, in load
    _kernel.load(assembly.name, assembly.version, os.fspath(assembly_path))
  File "/usr/local/lib/python3.7/site-packages/jsii/_kernel/__init__.py", line 269, in load
    self.provider.load(LoadRequest(name=name, version=version, tarball=tarball))
  File "/usr/local/lib/python3.7/site-packages/jsii/_kernel/providers/process.py", line 338, in load
    return self._process.send(request, LoadResponse)
  File "/usr/local/lib/python3.7/site-packages/jsii/_utils.py", line 24, in wrapped
    stored.append(fgetter(self))
  File "/usr/local/lib/python3.7/site-packages/jsii/_kernel/providers/process.py", line 333, in _process
    process.start()
  File "/usr/local/lib/python3.7/site-packages/jsii/_kernel/providers/process.py", line 259, in start
    env=environ,
  File "/usr/lib64/python3.7/subprocess.py", line 800, in __init__
    restore_signals, start_new_session)
  File "/usr/lib64/python3.7/subprocess.py", line 1551, in _execute_child
    raise child_exception_type(errno_num, err_msg, err_filename)
FileNotFoundError: [Errno 2] No such file or directory: 'node': 'node'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "./l", line 3, in <module>
    import aws_cdk
  File "/usr/local/lib/python3.7/site-packages/aws_cdk/__init__.py", line 1051, in <module>
    from ._jsii import *
  File "/usr/local/lib/python3.7/site-packages/aws_cdk/_jsii/__init__.py", line 11, in <module>
    import constructs._jsii
  File "/usr/local/lib/python3.7/site-packages/constructs/__init__.py", line 41, in <module>
    from ._jsii import *
  File "/usr/local/lib/python3.7/site-packages/constructs/_jsii/__init__.py", line 12, in <module>
    "constructs", "10.0.69", __name__[0:-6], "constructs@10.0.69.jsii.tgz"
  File "/usr/local/lib/python3.7/site-packages/jsii/_runtime.py", line 43, in load
    _kernel.load(assembly.name, assembly.version, os.fspath(assembly_path))
  File "/usr/lib64/python3.7/contextlib.py", line 161, in __exit__
    raise RuntimeError("generator didn't stop after throw()")
RuntimeError: generator didn't stop after throw()
Exception ignored in: <function _NodeProcess.__del__ at 0x7f3fc99ebb90>
Traceback (most recent call last):
  File "/usr/local/lib/python3.7/site-packages/jsii/_kernel/providers/process.py", line 224, in __del__
    self.stop()
  File "/usr/local/lib/python3.7/site-packages/jsii/_kernel/providers/process.py", line 281, in stop
    if not self._process.stdin.closed:
AttributeError: '_NodeProcess' object has no attribute '_process'

我還有一台運行 Centos 的“家用機器”,收到的消息非常相似。 但是,我繼續使用 ec2 實例來使問題更容易復制和記錄。 謝謝你。

如鏈接頁面所述,您應該首先安裝 AWS CDK,這是通過npm完成的。 哪個是node.js package經理; 后者很可能是錯誤消息中提到的'node' ,因為它是通過subprocess運行的外部(可執行)文件。

因此,首先安裝nodenpm (它們可能一起出現),然后繼續安裝 Python AWS CDK。

謝謝“9769953” - 答案似乎是要使 AWS CDK python 庫正常工作,您必須安裝節點的依賴項。

這篇文章也有幫助。

對於文檔 - 這是在 Amazon Linux 2 上為 python 和其他類似的 Linux 發行版安裝 AWS CDK 的方法。

一種。 安裝節點版本管理器。

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.37.2/install.sh | bash

b. 激活 nvm。

. ~/.nvm/nvm.sh

c.安裝節點。

nvm install node

d. 檢查版本(可選)。

node -v
npm -v

e. 最后是 python 位!

python3 -m pip install aws-cdk-lib

F。 運行一個 Python 程序。

#!/usr/bin/python3
import aws_cdk
print('hello')

就是這樣。

再次感謝“9769953”和“CyberEternal”。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM