2017-04-03 48 views
3

我正在使用grequests python模块来调用一些API。我想做两个功能。grequests与请求有冲突

  1. 单个请求(使用请求模块)
  2. 甲多个请求(使用grequests模块)

当我使用在两个不同的文件两个模块,它正常运行,但是当我导入2模块在同一个文件中,请求模块落入无穷大递归。

#!/usr/bin/env python                                               
    #-*- encoding:utf-8 -*-                                               

    import requests                                                 
    import grequests                                                

    def SingleRequest():                                               
     rs = requests.get("www.example.com")                                           
     return rs                                                

    def MultiRequest():                                                
     urls = [                                                 
      "www.example1.com", 
      "www.example2.com", 
      "www.example3.com"                         
     ]                                                   
     rs = [grequests.get(u) for u in urls]                                       
     rs_map = grequests.map(rs);                                             
     return rs_map;  

如果我调用MultiRequest() - > do好了!

,但如果我叫SingleRequest()......↓

Exception Type: RecursionError 
Exception Value: maximum recursion depth exceeded 
Exception Location: /usr/local/lib/python3.6/ssl.py in options, line 459 

/usr/local/lib/python3.6/ssl.py in options 
    super(SSLContext, SSLContext).options.__set__(self, value) X 100 times... 

是否可以使用请求和grequests在一个文件中

回答

2

是的。 进口请求grequests。 这是关于此的open issue