由于导入模块冲突,S3 上传失败

S3 upload fails due to import modules collision

我正在使用 python 脚本将文件上传到 s3 存储桶。但是我遇到了

这样的错误
S3 Upload Failed with exception : An HTTP Client raised an unhandled exception: cannot switch to a different thread

当我调查时,我发现包 boto3grequests

有奇怪的行为

当我在我的脚本中导入 grequestsboto3 时,它抛出异常。但是当我从我的代码中删除 import grequests 时,文件会毫无问题地上传到 s3。

import sys, os, time
import grequests
import boto3, ntpath

我的代码中确实需要 grequestsboto3。但是如果我想对 s3 使用 boto3 ,我不能导入 grequests 。 有什么办法可以防止这种行为吗?

看起来像是一个已知问题:https://github.com/spyoungtech/grequests/issues/123

Github 线程中建议的解决方案包括更改导入顺序和使用替代库,如 https://pypi.org/project/fgrequests/