Расширение API Google ДискаNotFound Ошибка (Python) - PullRequest
0 голосов
/ 02 февраля 2020

Я пытаюсь использовать Google Drive и API Google Sheets с Python для доступа к настроенному мной тестовому Google Sheet. Просто следуя учебному пособию онлайн, когда я запускаю код, я получаю следующую ошибку:

  File "C:\...\Roaming\Python\Python37\site-packages\cryptography\x509\extensions.py", line 131, in get_extension_for_class
    "No {} extension was found".format(extclass), extclass.oid

ExtensionNotFound: No <class 'cryptography.x509.extensions.SubjectAlternativeName'> extension was found

Достаточно сказать, что я довольно запутался.

Код проекта:

#import library
import gspread

#Service client credential from oauth2client
from oauth2client.service_account import ServiceAccountCredentials

#Create scope
scope = ['https://spreadsheets.google.com/feeds', 'https://www.googleapis.com/auth/drive']

#create some credential using that scope and content of startup_funding.json
creds = ServiceAccountCredentials.from_json_keyfile_name('client_secret.json',scope)
#create gspread authorize using that credential
client = gspread.authorize(creds)

wks = client.open('api_tester').sheet1

Что я пробовал до сих пор:

  • Использование pip для установки пакета криптографии, но он говорит, что все есть
  • Удаление .sheet1, которое избавляет от ошибки, но, очевидно, не помогает мне достичь моей цели

Есть ли что-то в этом .sheet1 методе, который может вызвать это, возможно?

Я использую Python 3.7, у меня правильный заголовок листа и, насколько я могу судить, все необходимые разрешения для моих учетных данных API (я также предоставил доступ к редактированию листа для client_email в файле JSON).

Я никогда не сталкивался с подобной ошибкой раньше и был бы очень признателен за любую помощь, которую вы можете оказать!

Редактировать: Вот полный ответ:

Traceback (most recent call last):

  File "<ipython-input-48-6114487ac5ae>", line 1, in <module>
    runfile('C:/Users/parke/OneDrive/Documents/Random Projects/API injector.py', wdir='C:/Users/parke/OneDrive/Documents/Random Projects')

  File "C:\ProgramData\Anaconda3\lib\site-packages\spyder_kernels\customize\spydercustomize.py", line 786, in runfile
    execfile(filename, namespace)

  File "C:\ProgramData\Anaconda3\lib\site-packages\spyder_kernels\customize\spydercustomize.py", line 110, in execfile
    exec(compile(f.read(), filename, 'exec'), namespace)

  File "C:/Users/parke/OneDrive/Documents/Random Projects/API injector.py", line 13, in <module>
    wks = client.open('api_tester').sheet1

  File "C:\ProgramData\Anaconda3\lib\site-packages\gspread\client.py", line 123, in open
    self.list_spreadsheet_files()

  File "C:\ProgramData\Anaconda3\lib\site-packages\gspread\client.py", line 96, in list_spreadsheet_files
    res = self.request('get', url, params=params).json()

  File "C:\ProgramData\Anaconda3\lib\site-packages\gspread\client.py", line 73, in request
    headers=headers

  File "C:\ProgramData\Anaconda3\lib\site-packages\requests\sessions.py", line 546, in get
    return self.request('GET', url, **kwargs)

  File "C:\ProgramData\Anaconda3\lib\site-packages\requests\sessions.py", line 533, in request
    resp = self.send(prep, **send_kwargs)

  File "C:\ProgramData\Anaconda3\lib\site-packages\requests\sessions.py", line 646, in send
    r = adapter.send(request, **kwargs)

  File "C:\ProgramData\Anaconda3\lib\site-packages\requests\adapters.py", line 449, in send
    timeout=timeout

  File "C:\ProgramData\Anaconda3\lib\site-packages\urllib3\connectionpool.py", line 600, in urlopen
    chunked=chunked)

  File "C:\ProgramData\Anaconda3\lib\site-packages\urllib3\connectionpool.py", line 343, in _make_request
    self._validate_conn(conn)

  File "C:\ProgramData\Anaconda3\lib\site-packages\urllib3\connectionpool.py", line 839, in _validate_conn
    conn.connect()

  File "C:\ProgramData\Anaconda3\lib\site-packages\urllib3\connection.py", line 355, in connect
    cert = self.sock.getpeercert()

  File "C:\ProgramData\Anaconda3\lib\site-packages\urllib3\contrib\pyopenssl.py", line 360, in getpeercert
    'subjectAltName': get_subj_alt_name(x509)

  File "C:\ProgramData\Anaconda3\lib\site-packages\urllib3\contrib\pyopenssl.py", line 211, in get_subj_alt_name
    x509.SubjectAlternativeName

  File "C:\Users\parke\AppData\Roaming\Python\Python37\site-packages\cryptography\x509\extensions.py", line 131, in get_extension_for_class
    "No {} extension was found".format(extclass), extclass.oid

ExtensionNotFound: No <class 'cryptography.x509.extensions.SubjectAlternativeName'> extension was found
...