Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

pyOpenSSL version of 24.3.0 breaks PyDrive

オープン
#361 コメント 7 件 リアクション 6 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

評価

難易度
4/5
見積もり時間
3〜5日
初心者へのやさしさ
45/100
issue の種類
バグ
明瞭さ
おおむね明確
活発さ
停滞
技術スタック
python
領域
api, backend

調査の方向性

pydrive2/apiattr.py、auth.py、files.py の失敗しているパスから始め、pyOpenSSL 24.3.0 を使用して service account の refresh の失敗を再現します。影響を受ける依存関係の動作を 24.2.1 と比較し、issue にリンクされている移行のコンテキストを確認します。移行が完了し、OpenSSL.crypto.sign の失敗を再発させることなく pyOpenSSL のバージョン固定を解除できれば完了です。

索引モデルが issue の本文から書いたものです。

説明

maintenance priority-p2

Edited by @shcheklein : Action item: unpin pyOpenSSL after migration is done. See the comment below https://github.com/iterative/PyDrive2/issues/361#issuecomment-2506655182


Hey, after pip installed a new version of pyOpenSSL overnight (24.3.0), all my pipelines that contain pydrive started to fail with the following error:

  File "/usr/local/lib/python3.9/dist-packages/pydrive2/apiattr.py", line 166, in GetList
    for x in self:
  File "/usr/local/lib/python3.9/dist-packages/pydrive2/apiattr.py", line 150, in __next__
    result = self._GetList()
  File "/usr/local/lib/python3.9/dist-packages/pydrive2/auth.py", line 85, in _decorated
    return decoratee(self, *args, **kwargs)
  File "/usr/local/lib/python3.9/dist-packages/pydrive2/files.py", line 84, in _GetList
    self.auth.service.files()
  File "/usr/local/lib/python3.9/dist-packages/googleapiclient/_helpers.py", line 130, in positional_wrapper
    return wrapped(*args, **kwargs)
  File "/usr/local/lib/python3.9/dist-packages/googleapiclient/http.py", line 923, in execute
    resp, content = _retry_request(
  File "/usr/local/lib/python3.9/dist-packages/googleapiclient/http.py", line 191, in _retry_request
    resp, content = http.request(uri, method, *args, **kwargs)
  File "/usr/local/lib/python3.9/dist-packages/oauth2client/transport.py", line 159, in new_request
    credentials._refresh(orig_request_method)
  File "/usr/local/lib/python3.9/dist-packages/oauth2client/client.py", line 749, in _refresh
    self._do_refresh_request(http)
  File "/usr/local/lib/python3.9/dist-packages/oauth2client/client.py", line 774, in _do_refresh_request
    body = self._generate_refresh_request_body()
  File "/usr/local/lib/python3.9/dist-packages/oauth2client/client.py", line 1484, in _generate_refresh_request_body
    assertion = self._generate_assertion()
  File "/usr/local/lib/python3.9/dist-packages/oauth2client/service_account.py", line 384, in _generate_assertion
    return crypt.make_signed_jwt(self._signer, payload,
  File "/usr/local/lib/python3.9/dist-packages/oauth2client/crypt.py", line 97, in make_signed_jwt
    signature = signer.sign(signing_input)
  File "/usr/local/lib/python3.9/dist-packages/oauth2client/_openssl_crypt.py", line 97, in sign
    return crypto.sign(self._key, message, 'sha256')
  File "/usr/local/lib/python3.9/dist-packages/cryptography/utils.py", line 68, in __getattr__
    obj = getattr(self._module, attr)
AttributeError: module 'OpenSSL.crypto' has no attribute 'sign'

the day before I still had pyOpenSSL version of 24.2.1, which worked. Forcing pyopenssl==24.2.1 in my requirements.txt file fixes the issue for now, but pydrive2 should be updated to reflect changes in pyOpenSSL

主要言語
Python
スター
670
フォーク
75
PR マージ指標
30日以内にマージされた PR はありません

環境構築

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

iterative/PyDrive2 のほかの issue

iterative/PyDrive2 の issue をすべて見る

似ている issue

Python の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。