属性错误:“AioClientCreator”对象没有属性“_register_lazy_block_unknown_fips_pseudo_regions”

use*_*457 14 python amazon-s3 amazon-web-services python-3.x apache-spark

最近开始占用AWS平台,但是在尝试占用的时候Sagemaker,出现如下错误,不知道是因为Sagemaker\xc2\xb4Parquet Dataset\xc2\xb4还是有关系:

\n
session = sagemaker.Session()\nregion = boto3.Session().region_name\nrole = get_execution_role()\n\nimport pyarrow.parquet as pq\nimport s3fs\ns3 = s3fs.S3FileSystem()\n\nbucket = \'s3://xx\'\n\ndf = pq.ParquetDataset(bucket, filesystem=s3).read_pandas().to_pandas()\n
Run Code Online (Sandbox Code Playgroud)\n

到目前为止,一切加载正常,但出现以下错误

\n
Attributeerror: \'AioClientCreator\' object has no attribute \'_register_lazy_block_unknown_fips_pseudo_regions\'\n
Run Code Online (Sandbox Code Playgroud)\n

属性错误

\n

我不知道,可能是什么错误

\n

Wes*_*eek 13

同样在这里。根据这个问题,这与 botocore 删除此功能有关。

这个有问题的函数 (_register_lazy_block_unknown_fips_pseudo_regions) 被有意删除,因为它被用来防止未知/新区域端点变体实际用于进行 API 调用,同时允许构建客户端,并且似乎已无意中添加到 aibotocore 中。

我能够通过使用解决该问题botocore==1.22.5


编辑:

从那以后,我再次尝试让一切都协调起来。这是我的Pipfile,它似乎可以正常工作,不会抛出@Drwhit 报告的错误。我相信错误是来自这个问题

s3fs = {version = "~=2021.4", extras = ["boto3"]}
aiohttp = "==3.7.2"
botocore = "==1.22.8"
aiobotocore = "==2.0.1"
Run Code Online (Sandbox Code Playgroud)

  • 您能发布您正在使用的 boto3 和 aiobotocore 的版本吗?当我尝试降级到 botocore1.22.5 时,我收到以下消息: 错误:pip 的依赖项解析器当前未考虑所有已安装的软件包。此行为是以下依赖性冲突的根源。boto3 1.20.24 需要 botocore<1.24.0,>=1.23.24,但您有 botocore 1.22.5,这是不兼容的。aiobotocore 2.0.1 需要 botocore<1.22.9,>=1.22.8,但您有 botocore 1.22.5,这是不兼容的。 (3认同)

Jos*_*don 6

为了使其工作,在已经安装了一些库的环境中,我需要在安装旧的 bo​​to3 版本之前发出一些卸载命令:

pip uninstall boto3
pip uninstall botocore
pip uninstall aiobotocore
Run Code Online (Sandbox Code Playgroud)

然后发出了这个:

pip install boto3==1.17.106
Run Code Online (Sandbox Code Playgroud)

...终于成功了。

如果在安装特定的 boto3 版本时出现任何冲突问题,只需卸载有冲突的软件包(我的 sagemaker 版本就遇到过这种情况)。如果需要,请在安装boto3旧版本后重新安装。不保证最终会起作用;尝试和错误会有所帮助。

完成后,发出pip list,这样您就可以获得可用版本的完整列表,并将其与适当的语法更改一起放入文件中requirements.txt,以便稍后构建您的环境。