Search code examples
pythonexceptionpython-requestsvirtualenvurllib2

python code throw Exception in new environment but works fine without it


So when I debug my code in pycharm I caught an exception in urllib2.urlopen:

#!/usr/bin/python
req = urllib2.Request(urlname)
urllib2.urlopen(req) 

This is an error I caught:

'Exception Error in Token:RequestToken : (<class
\\'urllib2.URLError\\'>, URLError(SSLError(1, u\\'[SSL:
CERTIFICATE_VERIFY_FAILED] certificate verify failed
(_ssl.c:661)\\'),), <traceback object at 0x7fbcfbfb1a70>)'

I should did like this actually:

#!/usr/bin/python
context = ssl._create_unverified_context()
req = urllib2.Request(urlname)
urllib2.urlopen(req, context=context)

Solution

  • Workaround could be:

    import ssl
    ssl._create_default_https_context = ssl._create_unverified_context
    

    But it is not good anyway.