a
和b
之间有什么区别?
>>> import boto3
>>> a = boto3.Session().client("s3")
>>> b = boto3.client("s3")
>>> a == b
False
两者似乎都有效,但对于变体a
,我在mypy
中得到以下错误:
模块没有属性"会话";
这似乎适用于所有服务(s3、ssm、sts…(。
如果两者相同,这可能取决于版本吗?
boto3.client("s3")
使用默认会话创建客户端。与相同
boto3.DEFAULT_SESSION.client('s3')
boto3.Session()
创建新会话。由于没有给定任何参数,因此创建的对象将等效于默认会话。如果您想使用新凭据配置文件,通常您会创建新会话,例如
boto3.Session(profile_name='non-default-profile')
CCD_ 7是不同的,因为它们是CCD_。
要解决mypy
问题,可以尝试以下操作。
import boto3.session
a = boto3.session.Session().client("s3")
如果这有帮助,请告诉我!