Ale*_*x C 16 python boto pycharm aws-cli boto3
在PyCharm中看到完整的intellisense(代码完成)选项时遇到问题.在Windows上使用python 3.4.建议部分工作:
import boto3
s = boto3.Session() (boto3. will bring up list of methods/params of object boto3)
ec2 = s.resource('ec2') (resource is a suggested method!)
ec2. <<<< this brings up nothing. For some reason PyCharm cant detect that ec2 object would have
Run Code Online (Sandbox Code Playgroud)
虽然我可以单独处理文档,但intellisense是一个很好的功能!
我有类似的问题让它完成lxml语法,但我认为那是因为我必须直接安装lxml作为二进制(太多的箍跳过窗口通过点子安装它)
其他人遇到类似的问题?
当我们在这里时,我看到很多不同的库使用awscli与python:boto,boto3,troposphere等.使用一个优于另一个有什么优点.亚马逊声称boto3是优于boto的方法,但是对于我使用较旧的boto可以很容易地使用启动/停止ec2实例.
geh*_*had 22
我对同样的问题感到沮丧.所以我决定解析boto3文档并从文档中生成包装类.这是项目https://github.com/gehadshaat/pyboto3的链接
安装它
pip install pyboto3
Run Code Online (Sandbox Code Playgroud)
使用它
import boto3
s3 = boto3.client('s3')
""" :type : pyboto3.s3 """
# s3. -> will give you autocomplete for s3 methods in pycharm
Run Code Online (Sandbox Code Playgroud)
发生这种情况是因为boto3客户端和资源对象上的所有方法都是在运行时基于描述服务支持的操作的JSON文件生成的.Pycharm必须具有关于此过程的特定知识才能自动完成方法名称.
对于您的第二个问题,boto3是适用于Python的官方AWS SDK.boto3的一个主要优点是,由于这个描述AWS API的JSON模型驱动过程,大多数新服务功能只需要简单的模型更新.这意味着API更新以快速,一致和可靠的方式发生.
但是如果您在现有代码中使用boto并且它正在为您工作,请随时继续使用它.如果需要提供新功能,可以随时在boto 3旁边安装boto3.
这里的房间有点拥挤,但我还创建了一个boto3打字解决方案(GitHub 链接)boto3_type_annotations,. 我采用这种pyboto3方法并解析服务对象的文档字符串,然后以编程方式为它们编写类定义,并使用typing模块注释参数和返回类型。不像pyboto3我创建了一切,包括服务资源、分页器和服务员。还有一个选项可以让我保留文档字符串,这样 PyCharm 的快速文档就可以工作。但公平警告,这个包裹真的很大。
# Without docs
pip install boto3_type_annotations
# Or with docs
pip install boto3_type_annotations_with_docs
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7337 次 |
| 最近记录: |