ImportError: невозможно импортировать имя '_gi' из частично инициализированного модуля 'gi' (скорее всего, из-за циклического импорта) - PullRequest
2 голосов
/ 21 января 2020

Похоже, я сломал python установку, когда хотел переключиться на python 3.8. Использование Ubuntu 18.04. Попытка использовать gi выдает следующую ошибку:

$ 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)

Пробовал запускать альтернативы обновления для python, но он говорит, что настроена только одна python альтернатива (3.8).

Попробовал переустановить python3 -gi и python3 .8. Все та же проблема

Ответы [ 2 ]

1 голос
/ 22 февраля 2020

Install gi для python 3.8: python3.8 -m pip install pgi Тогда вместо import gi используйте:

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

В качестве альтернативы, вы можете принудительно установить PyGObject для python 3.8:

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

, что должно позволить from gi import ..., как и раньше.

0 голосов
/ 24 января 2020

Имеет ту же проблему, не может загрузить модуль из папки скриптов. В моем случае сработает, если я, например, изменяю рабочий каталог (но только для встроенной команды):

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

После копирования скрипта в / tmp он не работает

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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...