导入错误:无法从python3.10上部分初始化的模块'gi'汇入名称'_gi'(很可能是因为循环汇入)

mpgws1up  于 2022-12-01  发布在  Python
关注(0)|答案(1)|浏览(383)

我更新了我的python3版本到3.10现在我的便利贴给这个错误

Traceback (most recent call last):
  File "/usr/bin/indicator-stickynotes", line 21, in <module>
    from stickynotes.gui import *
  File "/usr/share/indicator-stickynotes/stickynotes/gui.py", line 20, in <module>
    import gi
  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)
dgiusagp

dgiusagp1#

我把我的python从3.8升级到3.9.5,也遇到了同样的问题。这是因为python 3.10升级了,但是包中的.so文件的文件名没有改变。所以gi包的__init__.py会尝试加载一个文件名包含以前版本的python的文件。
一种解决方案是制作.so文件的副本并将其重命名。

cd /usr/lib/python3/dist-packages/gi/
sudo cp _gi.cpython-{older version number}-x86_64-linux-gnu.so _gi.cpython-310-x86_64-linux-gnu.so

请将{旧版本号}替换为旧的Python版本,以便目录中存在此名称的文件。

相关问题