ImportError: cannot import name 'types' from 'google.cloud.vision' though I have google cloud vision installed

Viewed 10107

I have installed google-cloud-vision library following the documentation. It is for some reason unable to import types from google.cloud.vision. It worked fine on my pc, now when I shared with my client, he had a problem with imports though he has the library installed via pip. Here's the line that throws error:

from google.cloud import vision
from google.cloud.vision import types # this line throws error

Any idea how to resolve this issue?

3 Answers

Types module has been removed from google.cloud.vision from 2.0.0. You can access all the types from vision.

https://googleapis.dev/python/vision/latest/UPGRADING.html#enums-and-types

Before:

from google.cloud import vision_v1

likelihood = vision_v1.enums.Likelihood.UNKNOWN
request = vision_v1.types.GetProductSetRequest(name="name")

After:

from google.cloud import vision_v1

likelihood = vision_v1.Likelihood.UNKNOWN
request = vision_v1.GetProductSetRequest(name="name")

It's probably because there's some version mismatch (or less likely there's other library(s) with the same name). Have your client use a virtual environment. This should resolve the issue.

P.S. You'll have to provide him with a requirements.txt file (obtained from pip3 freeze) so that he can do a pip3 install -r requirements.txt on his virtual environment to have the exact same packages as yours.

Related