PyCharm boto3 智能感知
PyCharm intellisense for boto3
在 PyCharm 中查看完整的智能感知(代码完成)选项时遇到问题。
在 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
虽然我可以单独处理文档,但智能感知是一个非常棒的功能!
我在完成 lxml 语法时遇到了类似的问题,但我认为那是因为我必须将 lxml 直接安装为二进制文件(在 windows 上跳过太多环节以通过 pip 安装它)
还有其他人遇到过类似的问题吗?
虽然我们在这里,
我看到很多不同的库围绕 python 使用 awscli:boto、boto3、troposphere 等。使用一个比另一个有哪些优势。 Amazon 声明 boto3 是优于 boto 的首选方法,但对于我使用的 starting/stopping ec2 实例,可以使用较旧的 boto 轻松完成。
发生这种情况是因为 boto3 客户端和资源对象上的所有方法都是在运行时根据描述服务支持的操作的 JSON 文件生成的。 Pycharm 必须具备有关此过程的特定知识才能自动完成方法名称。
关于你的第二个问题,boto3 是 Python 的官方 AWS SDK。 boto3 的主要优点之一是,由于这种描述 AWS API 的 JSON 模型驱动过程,大多数新服务功能只需要简单的模型更新。这意味着 API 更新以快速、一致且可靠的方式进行。
但是,如果您在现有代码中使用 boto 并且它适合您,请继续使用它。如果您需要引入新功能,您始终可以在 boto 旁边安装 boto3。
我对同样的问题感到沮丧。所以我决定解析 boto3 文档并从文档中生成包装器 类。这里是 link 项目
https://github.com/gehadshaat/pyboto3
安装它
pip install pyboto3
使用它
import boto3
s3 = boto3.client('s3')
""" :type : pyboto3.s3 """
# s3. -> will give you autocomplete for s3 methods in pycharm
请确保您首先:
- 安装pyboto3 -> pip install pyboto3 | pip3.x 安装 pyboto3
- 检查您的解释器设置并确认您在列表中看到 pyboto3
- 做一个文件 -> 无效 Caches/Restart
Pycharm 重新启动后,您应该会看到智能感知对您有利,并且您尝试使用的服务的所有可用方法(在上述 s3 的情况下)都可用!
可能不是官方方法,但我确实找到了一些有用的方法。
在 PyCharm 中,打开 python 控制台(tools/python 控制台)。控制台的右侧还会有变量列表。如果您在控制台上初始化一个资源对象,它的子对象将列在变量对象树中。还有一些有限的智能感知。
我开始这样做的方式是使用变量 watch window 将代码直接写入解释器作为作弊 sheet。编写代码后,我 copy/paste 将其放入实际的脚本文件中。笨重...
我喜欢 boto3,但我也很沮丧,因为每次我想提出一个简单的临时请求时,我都必须打开 boto3 文档。所以我写了autoboto:
https://pypi.org/project/autoboto/
它不只是自动完成。它还包含 returns 个数据类,这意味着您不必查找返回对象的属性名称。 PyCharm 会告诉您可用的内容。
目前,由于所有通用序列化和反序列化,它也可能非常慢。
这里的房间有点拥挤,但我还创建了一个 boto3
打字解决方案 (GitHub link),boto3_type_annotations
。我采用 pyboto3
方法解析服务对象的文档字符串,然后以编程方式为它们编写 class 定义,并使用 typing
模块注释参数和 return 类型。与 pyboto3
不同,我创建了所有内容,包括服务资源、分页器和服务员。还有一个选项,我将文档字符串留在其中,因此 PyCharm 的快速文档将起作用。但公平警告,那个包裹真的很大。
# Without docs
pip install boto3_type_annotations
# Or with docs
pip install boto3_type_annotations_with_docs
确保您:
- 安装pyboto3 -> pip install pyboto3 | pip3.x 安装 pyboto3
- 检查您的解释器设置并确认您在列表中看到 pyboto3
- 做一个文件 -> 无效 Caches/Restart
Pycharm 重新启动后,您应该会看到智能感知对您有利,并且您可以使用您尝试使用的服务的所有可用方法!
虽然正在讨论 boto3 的自动完成解决方案,但令我惊讶的是还没有人提到 botostubs。适用于任何 IDE 并自动保持最新。
boto3 1.16.62 的类型注释与 VSCode、PyCharm、Emacs、Sublime Text、mypy、pyright 和其他工具兼容。
这对我有用。如果您使用 python3
python3 -m pip install boto3-stubs
python3 -m pip install 'boto3-stubs[essential]'
在 PyCharm 中查看完整的智能感知(代码完成)选项时遇到问题。 在 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
虽然我可以单独处理文档,但智能感知是一个非常棒的功能!
我在完成 lxml 语法时遇到了类似的问题,但我认为那是因为我必须将 lxml 直接安装为二进制文件(在 windows 上跳过太多环节以通过 pip 安装它)
还有其他人遇到过类似的问题吗?
虽然我们在这里, 我看到很多不同的库围绕 python 使用 awscli:boto、boto3、troposphere 等。使用一个比另一个有哪些优势。 Amazon 声明 boto3 是优于 boto 的首选方法,但对于我使用的 starting/stopping ec2 实例,可以使用较旧的 boto 轻松完成。
发生这种情况是因为 boto3 客户端和资源对象上的所有方法都是在运行时根据描述服务支持的操作的 JSON 文件生成的。 Pycharm 必须具备有关此过程的特定知识才能自动完成方法名称。
关于你的第二个问题,boto3 是 Python 的官方 AWS SDK。 boto3 的主要优点之一是,由于这种描述 AWS API 的 JSON 模型驱动过程,大多数新服务功能只需要简单的模型更新。这意味着 API 更新以快速、一致且可靠的方式进行。
但是,如果您在现有代码中使用 boto 并且它适合您,请继续使用它。如果您需要引入新功能,您始终可以在 boto 旁边安装 boto3。
我对同样的问题感到沮丧。所以我决定解析 boto3 文档并从文档中生成包装器 类。这里是 link 项目 https://github.com/gehadshaat/pyboto3
安装它
pip install pyboto3
使用它
import boto3
s3 = boto3.client('s3')
""" :type : pyboto3.s3 """
# s3. -> will give you autocomplete for s3 methods in pycharm
请确保您首先:
- 安装pyboto3 -> pip install pyboto3 | pip3.x 安装 pyboto3
- 检查您的解释器设置并确认您在列表中看到 pyboto3
- 做一个文件 -> 无效 Caches/Restart
Pycharm 重新启动后,您应该会看到智能感知对您有利,并且您尝试使用的服务的所有可用方法(在上述 s3 的情况下)都可用!
可能不是官方方法,但我确实找到了一些有用的方法。 在 PyCharm 中,打开 python 控制台(tools/python 控制台)。控制台的右侧还会有变量列表。如果您在控制台上初始化一个资源对象,它的子对象将列在变量对象树中。还有一些有限的智能感知。
我开始这样做的方式是使用变量 watch window 将代码直接写入解释器作为作弊 sheet。编写代码后,我 copy/paste 将其放入实际的脚本文件中。笨重...
我喜欢 boto3,但我也很沮丧,因为每次我想提出一个简单的临时请求时,我都必须打开 boto3 文档。所以我写了autoboto:
https://pypi.org/project/autoboto/
它不只是自动完成。它还包含 returns 个数据类,这意味着您不必查找返回对象的属性名称。 PyCharm 会告诉您可用的内容。
目前,由于所有通用序列化和反序列化,它也可能非常慢。
这里的房间有点拥挤,但我还创建了一个 boto3
打字解决方案 (GitHub link),boto3_type_annotations
。我采用 pyboto3
方法解析服务对象的文档字符串,然后以编程方式为它们编写 class 定义,并使用 typing
模块注释参数和 return 类型。与 pyboto3
不同,我创建了所有内容,包括服务资源、分页器和服务员。还有一个选项,我将文档字符串留在其中,因此 PyCharm 的快速文档将起作用。但公平警告,那个包裹真的很大。
# Without docs
pip install boto3_type_annotations
# Or with docs
pip install boto3_type_annotations_with_docs
确保您:
- 安装pyboto3 -> pip install pyboto3 | pip3.x 安装 pyboto3
- 检查您的解释器设置并确认您在列表中看到 pyboto3
- 做一个文件 -> 无效 Caches/Restart
Pycharm 重新启动后,您应该会看到智能感知对您有利,并且您可以使用您尝试使用的服务的所有可用方法!
虽然正在讨论 boto3 的自动完成解决方案,但令我惊讶的是还没有人提到 botostubs。适用于任何 IDE 并自动保持最新。
boto3 1.16.62 的类型注释与 VSCode、PyCharm、Emacs、Sublime Text、mypy、pyright 和其他工具兼容。
这对我有用。如果您使用 python3
python3 -m pip install boto3-stubs
python3 -m pip install 'boto3-stubs[essential]'