1

Google カレンダー API を使用していくつかのイベントをフェッチし、venv を使用して必要なすべてのパッケージを格納しています。パッケージがインストールされていないgoogle.auth.transport.requestsため、正しく機能しないという単純な問題が発生しました。requests

コードとエラー:


この問題は、1 行のコードを使用して確認できます。

from google.auth.transport.requests import Request

google.auth.transport.requests次のエラーが(2 つのトレースバックの下部にある)からコンソールにダンプされます。

File "<string>", line 3, in raise_from
ImportError: The requests library is not installed, please install the requests package to use the requests transport.

試行の失敗


  1. venv の削除と再作成。
  2. --no-cache-dir および --ignore-installed を使用してモジュールをインストールします。

情報


  1. import requestsまたはfrom google.auth.transport.requests import Requestコンソールからの実行はenv\Scripts\python問題なく動作します。
  2. 次のディレクトリ内に配置されたファイルtemp.pyに配置された同じ行は、次のように実行されます。
    • AutoMate\: 安全
    • AutoMate\src\: 安全
    • AutoMate\src\sources\: エラー
    • AutoMate\src\sources\temp\: 安全 (sources\temp はデバッグ用にのみ作成)
    • AutoMate\src\sources\util\: 安全。

env\Scripts\python注: ここと以下のすべてのテストは、 と を使用して AutoMate\ から実行されましたenv\Scripts\pip

  1. venv の外側の pip には、Google 認証モジュールはどれもインストールされていません。

  2. プロジェクトの構造は次のとおりです。

AutoMate
|   temp.py
├───env
│   ├───Include
│   ├───Lib
│   └───Scripts
└───src
    │   AutoMate.pyw
    │
    └───sources
        │   calendar.py --> Problematic file
        │   whatsapp.py
        │   __init__.py
        │  
        └───util

  1. の出力env\Scripts\pip list:
Package                  Version
------------------------ ---------
cachetools               4.2.1
certifi                  2020.12.5
chardet                  4.0.0
google-api-core          1.26.1
google-api-python-client 2.0.2
google-auth              1.27.1
google-auth-httplib2     0.1.0
google-auth-oauthlib     0.4.3
googleapis-common-protos 1.53.0
httplib2                 0.19.0
idna                     2.10
oauthlib                 3.1.0
packaging                20.9
pip                      21.0.1
protobuf                 3.15.5
pyasn1                   0.4.8
pyasn1-modules           0.2.8
pyparsing                2.4.7
pytz                     2021.1
requests                 2.25.1
requests-oauthlib        1.3.0
rsa                      4.7.2
selenium                 3.141.0
setuptools               49.2.1
six                      1.15.0
uritemplate              3.0.1
urllib3                  1.26.3
4

1 に答える 1

1

解決


を使用するファイルには、それ自体と同じディレクトリに正確に ** という名前のファイルがあってはgoogle.auth.transport.requestsなりませんcalendar.py* 他のファイル名でも機能calendar.pythonCalendar.pyます。

** テストでは、いくつかの無効な名前のようrequests.pyに見えますが、正常に動作しているように見えますが、無効な名前が内部で使用されている可能性がありますか? さらなる知識が必要です。datetime.pymath.pytime.py

理由


私には何らかの内部干渉があるようです。誰かがこの問題の理由についても回答してくれることを願っています。

于 2021-03-11T10:02:27.303 に答える