In this article, you’ll get the solution for modulenotfounderror no module named gi error message in Python.
This error message no module named gi implies that the module “gi” is not installed in your system, which is required to run the program.
Luckily, this article will show you how to troubleshoot that error, provide solutions.
Apart from that, explain what that error means and the reasons why it occurs in your program.
What is modulenotfounderror no module named gi?
Traceback (most recent call last): File "<string>", line 1, in <module> ModuleNotFoundError: No module named 'gi'
This error no module named gi, indicates that the “gi” module is not installed on your system
That is why Python is unable to find it, or it is not located in the Python environment where your program is running.
The module “gi” is part of the GObject Introspection library, which provides a way for Python to dynamically access libraries written in languages such as C, C++, and Rust.
Aside from that, it is commonly used in Python applications because it has graphical user interfaces (GUIs) built using the GTK toolkit, such as the GNOME desktop environment.
What are the causes of “modulenotfounderror no module named gi” error?
These are the common causes of the error no module named gi:
1. Module “gi” is not installed or missing
It happens when you forget to install the module or the installation is corrupted.
2. Incorrect path
When the module path is not set properly, an error will occur because the Python interpreter cannot find the “gi” module or you didn’t add the path to the module in your system’s PATH variable.
3. Conflicting modules
When you’ve installed the same module in multiple versions, the “gi” module might conflict with other modules you’ve installed in your system.
In some instances, it happens that a module has dependencies that cause conflicts with other modules.
How to fix “modulenotfounderror no module named gi” error
Time needed: 2 minutes.
Here are the simple solutions to this error: modulenotfounderror no module named gi.
You have to open your command prompt or terminal and execute the following command:
- Install the “PyGObject” which contain the “gi” module
- Check the path to the module
You need to check if the path of your module is correctly set. You can do it by running the following command:
→ python -c “import gi; print(gi.path)”
- Uninstall the modules that cause conflict
If you have conflicting modules installed on your system, you have to uninstall them to avoid errors and run the program smoothly.
→ pip uninstall
→ pip3 uninstall
In the you have to replace the name of the conflicting module.
- Update Python
When the above solutions does not work, you have to update your Python version to the latest its version.
→ pip install –upgrade python
→ pip3 install –upgrade python
If you are using Linux, you can use the following command:
sudo apt install python3-gi
Just in case you need Python 2 support, you can use this command:
sudo apt install python-gi
You can also try to use this:
sudo apt install pkg-config libcairo2-dev gcc python3-dev libgirepository1.0-dev
For virtualenv users:
pip install vext pip install vext.gi
If you are using Anaconda:
conda install -c conda-forge pygobject
If you are using Ubuntu or Debian, you can use the following command:
sudo apt install python3-gi python3-gi-cairo gir1.2-gtk-3.0
Installing PyGObject from PyPI
1.Execute the following code:
sudo apt install libgirepository1.0-dev gcc libcairo2-dev pkg-config python3-dev gir1.2-gtk-3.0
2. To build and install Pycairo
pip3 install pycairo
3. To build and install PyGObject
pip3 install PyGObject
The error modulenotfounderror no module named gi frequently occurs when you don’t install the PyGObject that contains the module “gi.”
This article already provides a solution for this error that will resolve the error immediately.
You only have to choose the appropriate command for the platform you are using.
We also have solutions if you encounter an error like “modulenotfounderror: no module named skfuzzy“
Thank you very much for reading until the end of this article.