阿里云文档中心的python版本aliyun-python-sdk-rds不支持python3处理

 

问题:默认情况下文档中心的python版本只支持python2,不兼容python3版本

需要稍微修改源码即可

修改核心sdk包中文件aliyunsdkcore/profile/location_service.py第143行即可

修改方法

    def find_product_domain_from_location_service(
            self, region_id, service_code, endpoint_type):

        request = DescribeEndpointRequest(self.__service_product_name,
                                          self.__service_version,
                                          self.__service_action,
                                          region_id,
                                          service_code,
                                          endpoint_type)
        try:
            content = request.get_content()
            method = request.get_method()

            signer = getattr(self.__clinetRef, '_signer')
            header, url = signer.sign(self.__service_region, request)
            if self.__clinetRef.get_user_agent() is not None:
                header['User-Agent'] = self.__clinetRef.get_user_agent()
                header['x-sdk-client'] = 'python/2.0.0'
            protocol = request.get_protocol_type()
            response = HttpResponse(
                self.__service_domain,
                url,
                method,
                {} if header is None else header,
                protocol,
                content,
                self.__clinetRef.get_port())

            status, header, body = response.get_response_object()

            result = json.loads(body)
            if status == 200:
                endpoint = result.get('Endpoints').get('Endpoint')
                if len(endpoint) <= 0:
                    return None
                else:
                    return endpoint[0].get('Endpoint')
            elif 400 <= status < 500:
                # print "serviceCode=" + service_code + " get location error!
                # code=" + result.get('Code') +", message =" +
                # result.get('Message')
                return None
            elif status >= 500:
                raise exs.ServerException(
                    result.get('Code'), result.get('Message'))
            else:
                raise exs.ClientException(
                    result.get('Code'), result.get('Message'))
        except IOError:
            raise exs.ClientException(
                error_code.SDK_SERVER_UNREACHABLE,
                error_msg.get_msg('SDK_SERVER_UNREACHABLE'))
        except AttributeError:
            raise exs.ClientException(
                error_code.SDK_INVALID_REQUEST,
                error_msg.get_msg('SDK_INVALID_REQUEST'))
源方法

相关文章:

  • 2021-12-22
  • 2021-12-23
  • 2022-01-07
  • 2022-01-23
  • 2021-10-20
  • 2022-02-03
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2021-11-29
  • 2021-12-31
  • 2022-01-21
  • 2021-12-02
  • 2022-02-12
  • 2022-12-23
  • 2021-09-05
相关资源
相似解决方案