Open
Description
Environment details
- OS type and version: ubuntu:20.04 and macOs 14.7.1
- Python version: 3.11
- pip version: I dont use pip y use Poetry 1.5.1
google-api-python-client
version: 2.159.0
Steps to reproduce
- Install google-api-python-client with pip, pdm, poetry, hatch... it doesn't matter
- Use the method oauth to authenticate
from oauth2client.service_account import ServiceAccountCredentials
- use .execute() method of any googleapi method
- this retrieves the error 'OpenSSL.crypto' has no attribute 'sign'
Why does this happen?
Because you are importing oauth2client on the line https://github.com/googleapis/google-api-python-client/blob/main/googleapiclient/_auth.py#L33 and it is deprecated, oauth2client uses openssl with the method sign and openssl removed the method sign on the version 24.3.0.
So if you install openssl >= 24.3.0, and if you use the oauth2client.service_account from googleapiclient this will retrieves you the error
ERROR: module 'OpenSSL.crypto' has no attribute 'sign'
How to solves this?
Set a constraint of openssl >= 24.3.0 on googleapiclient or dont import oauth2client on googleapi anymore.