googleapis / googleapis/google-api-python-client
ERROR: 'OpenSSL.crypto' has no attribute 'sign'
- Lenguaje dominante
- Python
- Estrellas
- 8.9k
- Forks
- 2.6k
- Merge medio
- 2 d 28 min
- PR fusionados (30 d)
- 17
Descripción
#### 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
1. Install google-api-python-client with pip, pdm, poetry, hatch... it doesn't matter
2. Use the method oauth to authenticate
`from oauth2client.service_account import ServiceAccountCredentials`
3. use .execute() method of any googleapi method
4. 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](https://github.com/pyca/pyopenssl) with the method [sign](https://github.com/googleapis/oauth2client/blob/master/oauth2client/_openssl_crypt.py#L97) and openssl removed the method sign on the version [24.3.0](https://github.com/pyca/pyopenssl/blob/main/CHANGELOG.rst#backward-incompatible-changes-1).
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.
Guía de contribución
Evaluación
Este issue todavía no se ha evaluado.