首页 > 解决方案 > 如何修复谷歌子模块导入错误?

问题描述

我正在尝试在云 sdk 中运行以下命令以向云 IOT 发送命令

python3 main.py --send_command="$RESPONSE" --registry=REGISTRY NAME --device=DEVICE NAME --cloud_region=europe-west1 --project_id=PROJECT ID send-command

我收到以下错误消息。

Traceback (most recent call last):
  File "main.py", line 37, in <module>
    from google.api_core.exceptions import AlreadyExists
ModuleNotFoundError: No module named 'google

我尝试了以下解决方法,但没有运气。

pip install --upgrade google-api-core
pip install google-cloud
pip install google-cloud-vision

我错过了任何图书馆吗?

Python 版本 - Python 3.8.3

标签: pythonpython-3.xgoogle-cloud-sdkgoogle-cloud-iot

解决方案


如果您还没有并且愿意考虑使用virtualenv,它可能有助于(!)解决问题,因为它提供了一个“洁净室”:

python3 -m venv venv
source venv/bin/activate

然后检查当前模块:

pip3 freeze

不返回安装模块

然后:

pip3 install google-api-core
pip3 install google-cloud-vision
pip3 freeze

或者,最好创建requirements.txt

google-api-core==1.21.0
google-cloud-vision==1.0.0

和:

pip3 install --requirement ./requirements.txt
pip3 freeze

回报:

cachetools==4.1.0
certifi==2020.4.5.2
chardet==3.0.4
google-api-core==1.21.0
google-auth==1.18.0
google-cloud-vision==1.0.0
googleapis-common-protos==1.52.0
idna==2.9
protobuf==3.12.2
pyasn1==0.4.8
pyasn1-modules==0.2.8
pytz==2020.1
requests==2.24.0
rsa==4.6
six==1.15.0
urllib3==1.25.9

注意列表和版本会改变

然后检查导入将成功:

python3 -c "from google.api_core.exceptions import AlreadyExists"

推荐阅读