undefined symbol: PyUnicodeUCS2_Decode
Question: I'm trying to connect to my google sheets with gspread. Here is the code:

    
    
    #IMPORT STANDARD LIBRARIES
    import json
    import os
    
    #IMPORT THIRD PARTY LIBRARIES
    import gspread
    from oauth2client.client import SignedJwtAssertionCredentials
    
    key_location = '/home/selecaotwo/Dropbox/Public/my.ENV/' + os.sep + 'sys.CREDENTIALS'
    key_file_h = 'test-project-auth-a4f3c4bd20c4.json'
    print key_location + os.sep + key_file_h
    
    json_key = json.load(open(key_location + os.sep + key_file_h))
    scope = ['https://spreadsheets.google.com/feeds']
    
    credentials = SignedJwtAssertionCredentials(json_key['client_email'], json_key['private_key'], scope)
    gc = gspread.authorize(credentials)
    

Running this code gives me the following error:

    
    
    /home/selecaotwo/Dropbox/Public/my.ENV//sys.CREDENTIALS/test-project-auth-a4f3c4bd20c4.json
    Traceback (most recent call last):
      File "/home/selecaotwo/Desktop/gspread-test/gspread-test-001-codeRegist-0001.py", line 17, in <module>
        gc = gspread.authorize(credentials)
      File "/usr/local/lib/python2.7/site-packages/gspread/client.py", line 335, in authorize
        client.login()
      File "/usr/local/lib/python2.7/site-packages/gspread/client.py", line 98, in login
        self.auth.refresh(http)
      File "build/bdist.linux-x86_64/egg/oauth2client/client.py", line 598, in refresh
      File "build/bdist.linux-x86_64/egg/oauth2client/client.py", line 769, in _refresh
      File "build/bdist.linux-x86_64/egg/oauth2client/client.py", line 795, in _do_refresh_request
      File "build/bdist.linux-x86_64/egg/oauth2client/client.py", line 1425, in _generate_refresh_request_body
      File "build/bdist.linux-x86_64/egg/oauth2client/client.py", line 1554, in _generate_assertion
      File "build/bdist.linux-x86_64/egg/oauth2client/crypt.py", line 162, in from_string
      File "/usr/local/lib/python2.7/site-packages/OpenSSL/__init__.py", line 36, in <module>
        from OpenSSL import crypto
    ImportError: /usr/local/lib/python2.7/site-packages/OpenSSL/crypto.so: undefined symbol: PyUnicodeUCS2_Decode
    [Finished in 0.1s with exit code 1]
    [shell_cmd: python -u "/home/selecaotwo/Desktop/gspread-test/gspread-test-001-codeRegist-0001.py"]
    [dir: /home/selecaotwo/Desktop/gspread-test]
    [path: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin]
    

I read on the forums that this is likely an issue between my Ubuntu system
(14.04 LTS) and Python (2.7.9) but the weird thing was when I recompiled
python with --enable-encoding=usc2, I got the same error on the same line but
instead of saying "undefined symbol: PyUnicodeUCS2_Decode" it simply said
"undefined symbol: PyUnicodeUCS4_Decode". This leads me to believe the problem
may be something else and I'm not sure how to proceed.


Answer: I'm not sure if this will solve the problem. Instead of putting in the json
file itself, can you try entering the client_email and private key like this.
The client_email can be copied as such. For the private key, do this instead:

    
    
    key = u"-----BEGIN PRIVATE KEY-----\nBLABLA_\n-----END PRIVATE KEY-----\n".encode("utf-8")
    
    
    credentials = SignedJwtAssertionCredentials(client_email,key,scope)
    

