ImportError:没有名为google.cloud.error_reporting的模块

时间:2019-04-02 14:06:59

标签: python ubuntu google-app-engine-python pipenv

几周前,我在家中安装了Ubuntu 18.10,今天我决定从Windows迁移到该操作系统。

我将其用于Python开发。

不幸的是,我遇到了一些奇怪的错误,不知道如何解决。

当我尝试运行我的项目时,我在简单的请求中看到下一个错误

File "/usr/lib/google-cloud-sdk/platform/google_appengine/google/appengine/tools/devappserver2/python/runtime/sandbox.py", line 1154, in load_module
    raise ImportError('No module named %s' % fullname)
ImportError: No module named google.cloud.error_reporting

当我运行pip show google_cloud_error_reporting时,它会向我显示有关程序包的正确信息

DEPRECATION: Python 2.7 will reach the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 won't be maintained after that date. A future version of pip will drop support for Python 2.7.
Name: google-cloud-error-reporting
Version: 0.30.1
Summary: Stackdriver Error Reporting API client library
Home-page: https://github.com/GoogleCloudPlatform/google-cloud-python
Author: Google LLC
Author-email: googleapis-packages@google.com
License: Apache 2.0
Location: /home/p35/.local/share/virtualenvs/tt-T7X9xdJU/lib/python2.7/site-packages
Requires: google-cloud-logging
Required-by: 

gcloud --version的输出

Google Cloud SDK 240.0.0
alpha 2019.03.22
app-engine-python 1.9.84
app-engine-python-extras 1.9.84
beta 2019.03.22
bq 2.0.42
cloud-datastore-emulator 2.1.0
core 2019.03.22
gsutil 4.37
kubectl 2019.03.22

我尝试重新安装 pipenv setuptools ,项目依赖项本身,但是没有任何帮助。

简化的项目https://github.com/pahan35/google-cloud-error-reporting-import-bug

您知道如何解决此问题吗?

1 个答案:

答案 0 :(得分:0)

我找到了解决此问题的方法:我们应该通过vendor.add([any_accessible_folder])添加google依赖项,然后在另一个解释器下运行一个项目,或者我们需要从当前pipenv解释器中删除所有google依赖项。

解决方法(仍然欢迎正确的解决方案)

对于这个特定的项目,我做了下一步。

常用步骤

  1. 通过命令

    将所有pipenv依赖项安装到lib文件夹中

    pipenv run pip install -r <(pipenv lock -r) -t lib --upgrade

  2. 在导入Google Cloud依赖项之前,将本地文件夹用作条目文件中的另一个包来源

from google.appengine.ext import vendor

vendor.add('lib')

from google.cloud import error_reporting # causing problems dependency
  1. 然后,您需要从Pipenv解释器中删除Google软件包,或者使用另一个。我都测试过:B比较容易,但可能会导致意外冲突或错过包裹

A。从所有Google Cloud依赖项中清除当前的Pipenv解释器

  1. 通过命令pipenv shell进入pipenv shell
  2. 通过pip list
  3. 查看已安装的软件包
  4. 删除所有Google Cloud软件包以及通过反复运行而注意到的一些额外内容

    pip uninstall google_cloud_error_reporting google_auth google_core google_cloud_core google_api_core google_cloud_logging googleapis_common_protos protobuf

    也许我们可以通过从pipenv解释器中删除所有软件包来对其进行优化?

B。使用其他口译员

  1. 找到所需解释器的绝对路径。我使用了一个全局/usr/bin/python
  2. 通过诸如/usr/bin/python $(which dev_appserver.py) .这样的解释器运行项目

项目

Example project包含已应用的解决方法