我在其他情况下看到了这种行为,所以我不相信它boto
具体,但我将此问题标记为boto
,因为这是我的地方最近看到了这个问题。当我执行以下操作时,它适用于某些环境,但不是全部:
>>> import boto
>>> s3_conn = boto.s3.connection.S3Connection()
某些环境允许这样做,但其他环境会回复此例外:
AttributeError: 'module' object has no attribute 'connection'
但是,以下内容适用于所有环境(或者至少是我拥有的少数情况):
>>> from boto.s3.connection import S3Connection
>>> s3_conn = S3Connection(access_key_id,secret_access_key)
我也与其他图书馆见过这种情况,而不仅仅是boto
。任何人都可以了解幕后发生的事情,导致第一种情况并不总是有效吗?
答案 0 :(得分:1)
进行类似
的导入>>> import boto
为您提供boto
包。除非boto
明确导入子模块,否则不会使用此语句导入任何子模块。如果它们之前已经导入过,那么它们也可用于此导入。
>>> from boto.s3.connection import S3Connection
另一方面,将连续导入所有子模块。
顺便说一下:
>>> import boto
>>> s3_conn = boto.connect_s3
也有助于您解决此特定问题。