Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

1.1K
Views
ImportError: no se puede importar el nombre '_gi' del módulo 'gi' parcialmente inicializado (probablemente debido a una importación circular)

Parece que rompí mi instalación de python cuando quería cambiar a python 3.8. Usando Ubuntu 18.04. Intentando usar el gi , da el siguiente error:

 $ python Python 3.8.1 (default, Dec 31 2019, 18:42:42) [GCC 7.4.0] on linux Type "help", "copyright", "credits" or "license" for more information. >>> from gi.repository import GLib, Gio Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/usr/lib/python3/dist-packages/gi/__init__.py", line 42, in <module> from . import _gi ImportError: cannot import name '_gi' from partially initialized module 'gi' (most likely due to a circular import) (/usr/lib/python3/dist-packages/gi/__init__.py)

Intenté ejecutar update-alternatives para python, pero me dice que solo hay una alternativa de python configurada (3.8).

Intenté reinstalar python3-gi y python3.8. Sigue el mismo problema

over 4 years ago · Santiago Trujillo
6 answers
Answer question

0

Tiene el mismo problema, no se puede cargar el módulo desde la carpeta del script. En mi caso, funciona si cambio el directorio de trabajo, por ejemplo (pero solo para el comando en línea):

 cd /tmp; python -c 'from gocd import Server' echo $? 0

Después de copiar el script a /tmp, no funciona

 cp gocd.py /tmp cd /tmp; python -c 'from gocd import Server' Traceback (most recent call last): File "<string>", line 1, in <module> File "/tmp/gocd.py", line 3, in <module> from gocd import Server ImportError: cannot import name 'Server' from partially initialized module 'gocd' (most likely due to a circular import) (/tmp/gocd.py)
over 4 years ago · Santiago Trujillo Report

0

Instale gi para python 3.8: python3.8 -m pip install pgi Luego, en lugar de import gi , use:

 import pgi pgi.install_as_gi() from gi.repository import GLib, Gio

Alternativamente, puede forzar la instalación de PyGObject para python 3.8:

sudo python3.8 -m pip install --ignore-installed PyGObject

lo que debería permitirle a uno from gi import ... como antes.

over 4 years ago · Santiago Trujillo Report

0

Tuve el mismo problema. Enlacé python3 a python3.6, para mí apuntaba a 3.8. Eso resolvió el problema.

 cd /usr/bin/ rm python3 ln -s python3.6 python3

Eso es todo. Ahora mi sistema comenzó a funcionar bien.

over 4 years ago · Santiago Trujillo Report

0

Encontré la respuesta aquí https://bugzilla.redhat.com/show_bug.cgi?id=1709787 :

La causa es: /usr/lib64/python3.8/site-packages/gi/_gi.cpython-38m-x86_64-linux-gnu.so tiene un nombre incorrecto:

sh-5.0# python3 -c 'from gi.repository import GLib' Rastreo (última llamada más reciente): Archivo "", línea 1, en Archivo "/usr/lib64/python3.8/site-packages/gi/ init . py", línea 42, en from . import _gi ImportError: no se puede importar el nombre '_gi' de 'gi' (/usr/lib64/python3.8/site-packages/gi/ init .py) sh-5.0# mv /usr/lib64/python3.8/site- paquetes/gi/_gi.cpython-38m-x86_64-linux-gnu.so /usr/lib64/python3.8/site-packages/gi/_gi.cpython-38-x86_64-linux-gnu.so sh-5.0# python3 -c 'desde gi.repository import GLib'

Tenga en cuenta que desde 3.8.0a4, se supone que la "m" no está allí. ¿Está de alguna manera codificado?

sh-5.0# python3-config --extension-suffix .cpython-38-x86_64-linux-gnu.so

en mi caso fue

 $ sudo ln -s /usr/lib/python3/dist-packages/gi/_gi.cpython-35m-x86_64-linux-gnu.so /usr/lib/python3/dist-packages/gi/_gi.cpython-38-x86_64-linux-gnu.so $ sudo ln -s /usr/lib/python3/dist-packages/gi/_gi_cairo.cpython-35m-x86_64-linux-gnu.so /usr/lib/python3/dist-packages/gi/_gi_cairo.cpython-38-x86_64-linux-gnu.so
over 4 years ago · Santiago Trujillo Report

0

Para mí, la solución fue crear un enlace simbólico:

 cd /usr/lib/python3/dist-packages/gi/ sudo ln -s _gi.so _gi.cpython-38-x86_64-linux-gnu.so

y me resolvió el problema.

over 4 years ago · Santiago Trujillo Report

0

El motivo de este error es que esta aplicación no puede encontrar la versión de Python correspondiente de _gi_cairo.cpython-(version)-x86_64-linux-gnu.so.
Normalmente, esta situación inigualable se debe a un uso mixto incorrecto de diferentes versiones de Python.

Básicamente, puede intentar cambiar su versión de Python (a la versión predeterminada de su sistema operativo). O puede ir a '/usr/lib/python3/dist-packages/gi' y crear un nuevo archivo de biblioteca .so:

 cp _gi_cairo.cpython-(old version)-x86_64-linux-gnu.so _gi_cairo.cpython-(new version)-x86_64-linux-gnu.so

o

 ln -s _gi_cairo.cpython-(old version)-x86_64-linux-gnu.so _gi.so
over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!