Solve the Error “AttributeError: module ‘google.protobuf.descriptor’ has no attribute ‘_internal_create_key’”

Python is a well-known versatile programming language that has become an integral part of the programming world. Every programmer uses python whenever they want to create website pages, web applications, and even game development projects. Simple coding, the latest updates, libraries, frameworks, and the latest versions make programmers as well as beginners use it extensively. Despite being an old language, Python’s charm has not dropped even a bit, in fact, its popularity has been increasing day by day. Beginners are trying their best to learn Python to become a pro in programming. As it is frequently used widely, it is obvious to face errors, and “AttributeError: module ‘google.protobuf.descriptor’ has no attribute ‘_internal_create_key’” is one of those.

This error seems long and tough, but in reality, it is not as complex as you think. Now that you find us to solve the error, we don’t leave a single leave unturned to provide you with out-of-the-box solutions so that you can continue coding without this error popping up. Let’s discuss how the error occurs

How the error appears

When you try to import or use label_map_util in jupyter notebook, you end up with the error message. This is what you get

~\AppData\Roaming\Python\Python37\site-packages\object_detection\protos\ in <module>

     19   syntax='proto2',

     20   serialized_options=None,

---> 21   create_key=_descriptor._internal_create_key,

AttributeError: module 'google.protobuf.descriptor' has no attribute '_internal_create_key'

Ways To Resolve the Error “AttributeError: module ‘google.protobuf.descriptor’ has no attribute ‘_internal_create_key’”

There are a few effective ways to make the error warning go away. Have a look at them

Option 1 – Update protobuf

This is the easiest way to fix the error. You simply need to update the version of protobuf. To update it, you need to follow the below command

pip install --upgrade protobuf

In the case of Python 3, you need to run the following command

pip3 install --upgrade protobuf

Option 2 – Update Pip

Another effective way to handle the error warning. You need to update the pip. To do that, first, you need to uninstall protobuf using the below command

pip uninstall protobuf python3-protobuf

After uninstalling, you need to update pip with the help of the following command

pip install --upgrade pip

Now update the protobuf using the below command

pip install --upgrade protobuf

Option 3 – Install the ‘Conda install protobuf’

To get rid of the error message, you just need to install ‘conda install protobuf’ first, then try the following command

conda install -c conda-forge streamlit

Option 4 – Use the following command

The latest libraries of Google utilize proto plus, which is a Python proto messages wrapper. It works to solve the error. You can use the following

import json import proto def proto_message_to_dict(message: proto.Message) -> dict: """Helper method to parse protobuf message to dictionary.""" return json.loads(message.__class__.to_json(message))


In this post, we highlighted the options to remove the error AttributeError: module ‘google.protobuf.descriptor’ has no attribute ‘_internal_create_key’”. You can choose the option that fits best with the current condition of your project.

I wish you all the best!

Leave a Reply

Your email address will not be published. Required fields are marked *