ImportError: No module named google.oauth2
ImportError: No module named google.oauth2
我想为我的项目添加一个 google.cloud.storage 依赖项,所以我尝试使用
安装这个依赖项
pip install --upgrade google-cloud-storage
运行 我的应用再次使用 dev_appserver,它告诉我我的 gcloud 组件需要更新。好的,gcloud components update
在我的 src/__init__.py
文件中,我得到了告诉 gcloud 在哪个文件夹中查找依赖项的代码,如下所示:
from google.appengine.ext import vendor
vendor.add('src/libs')
所有依赖项都已正确安装,除了我收到错误 ImportError: No module named google.oauth2
PS:我的应用使用 OAuth2 来保护对 API 的访问。在我进行组件更新之前它工作正常,现在即使我回滚代码,删除 libs 文件夹并再次安装依赖项,我仍然收到 No module 错误,而且似乎 dev_appserver 没有在寻找那个libs 文件夹内的依赖项 !
这是 gcloud --version
的结果:
Google Cloud SDK 188.0.1
app-engine-python 1.9.66
app-engine-python-extras 1.9.63
bq 2.0.28
core 2018.02.08
gsutil 4.28
这是回溯:
Traceback (most recent call last):
File "/home/login/google-cloud-sdk/platform/google_appengine/google/appengine/runtime/wsgi.py", line 240, in Handle
handler = _config_handle.add_wsgi_middleware(self._LoadHandler())
File "/home/login/google-cloud-sdk/platform/google_appengine/google/appengine/runtime/wsgi.py", line 299, in _LoadHandler
handler, path, err = LoadObject(self._handler)
File "/home/login/google-cloud-sdk/platform/google_appengine/google/appengine/runtime/wsgi.py", line 96, in LoadObject
__import__(cumulative_path)
File "/home/headless/Documents/Projects/meterFleet/app-backend/src/main.py", line 5, in <module>
from src.app.user.api import UserApi
File "/home/headless/Documents/Projects/meterFleet/app-backend/src/app/user/api.py", line 7, in <module>
from src.googleapis.iam import getIamPolicy, addIapUser, deleteIapUser
File "/home/headless/Documents/Projects/meterFleet/app-backend/src/googleapis/iam.py", line 5, in <module>
from src.common.authentication import OAuth
File "/home/headless/Documents/Projects/meterFleet/app-backend/src/common/authentication.py", line 3, in <module>
from google.oauth2 import service_account
File "/home/login/google-cloud-sdk/platform/google_appengine/google/appengine/tools/devappserver2/python/runtime/sandbox.py", line 1147, in load_module
raise ImportError('No module named %s' % fullname)
ImportError: No module named google.oauth2
编辑:我想如果你使用像 virtualenv 这样的东西你永远不会得到这个错误。
问题出在项目文件夹(src/libs
文件夹)和 python 本地库文件夹(/usr/local/python2.7/ dist-packages)。我从 python libs 文件夹中删除了 google 库,它现在又可以工作了!
我经常遇到这个问题。我从我的本地机器上卸载了所有 Google 包,删除了我的 GAE 应用程序文件夹中的 lib 文件夹,再次创建它然后执行:
pip install -t lib google-auth google-auth-httplib2 google-api-python-client --upgrade
这应该可以解决您的问题。
我决定使用 pipenv 来解决这个问题。
pip3 install pipenv
pipenv install
pipenv shell
然后安装你需要的库。
只需升级一些 python 软件包就解决了我的问题:
pip install --upgrade google-auth google-auth-httplib2 google-api-python-client
如果上述 none 适合您 - 我从 hiranya911 的 GitHub 中找到了 this answer。完美解决了我的问题
我想为我的项目添加一个 google.cloud.storage 依赖项,所以我尝试使用
安装这个依赖项pip install --upgrade google-cloud-storage
运行 我的应用再次使用 dev_appserver,它告诉我我的 gcloud 组件需要更新。好的,gcloud components update
在我的 src/__init__.py
文件中,我得到了告诉 gcloud 在哪个文件夹中查找依赖项的代码,如下所示:
from google.appengine.ext import vendor
vendor.add('src/libs')
所有依赖项都已正确安装,除了我收到错误 ImportError: No module named google.oauth2
PS:我的应用使用 OAuth2 来保护对 API 的访问。在我进行组件更新之前它工作正常,现在即使我回滚代码,删除 libs 文件夹并再次安装依赖项,我仍然收到 No module 错误,而且似乎 dev_appserver 没有在寻找那个libs 文件夹内的依赖项 !
这是 gcloud --version
的结果:
Google Cloud SDK 188.0.1
app-engine-python 1.9.66
app-engine-python-extras 1.9.63
bq 2.0.28
core 2018.02.08
gsutil 4.28
这是回溯:
Traceback (most recent call last):
File "/home/login/google-cloud-sdk/platform/google_appengine/google/appengine/runtime/wsgi.py", line 240, in Handle
handler = _config_handle.add_wsgi_middleware(self._LoadHandler())
File "/home/login/google-cloud-sdk/platform/google_appengine/google/appengine/runtime/wsgi.py", line 299, in _LoadHandler
handler, path, err = LoadObject(self._handler)
File "/home/login/google-cloud-sdk/platform/google_appengine/google/appengine/runtime/wsgi.py", line 96, in LoadObject
__import__(cumulative_path)
File "/home/headless/Documents/Projects/meterFleet/app-backend/src/main.py", line 5, in <module>
from src.app.user.api import UserApi
File "/home/headless/Documents/Projects/meterFleet/app-backend/src/app/user/api.py", line 7, in <module>
from src.googleapis.iam import getIamPolicy, addIapUser, deleteIapUser
File "/home/headless/Documents/Projects/meterFleet/app-backend/src/googleapis/iam.py", line 5, in <module>
from src.common.authentication import OAuth
File "/home/headless/Documents/Projects/meterFleet/app-backend/src/common/authentication.py", line 3, in <module>
from google.oauth2 import service_account
File "/home/login/google-cloud-sdk/platform/google_appengine/google/appengine/tools/devappserver2/python/runtime/sandbox.py", line 1147, in load_module
raise ImportError('No module named %s' % fullname)
ImportError: No module named google.oauth2
编辑:我想如果你使用像 virtualenv 这样的东西你永远不会得到这个错误。
问题出在项目文件夹(src/libs
文件夹)和 python 本地库文件夹(/usr/local/python2.7/ dist-packages)。我从 python libs 文件夹中删除了 google 库,它现在又可以工作了!
我经常遇到这个问题。我从我的本地机器上卸载了所有 Google 包,删除了我的 GAE 应用程序文件夹中的 lib 文件夹,再次创建它然后执行:
pip install -t lib google-auth google-auth-httplib2 google-api-python-client --upgrade
这应该可以解决您的问题。
我决定使用 pipenv 来解决这个问题。
pip3 install pipenv
pipenv install
pipenv shell
然后安装你需要的库。
只需升级一些 python 软件包就解决了我的问题:
pip install --upgrade google-auth google-auth-httplib2 google-api-python-client
如果上述 none 适合您 - 我从 hiranya911 的 GitHub 中找到了 this answer。完美解决了我的问题