无法导入名称“_gi”
Cannot import name '_gi'
我正在尝试使用 add-apt-repository
命令向 ppa 添加存储库,但未找到来自 Python 的 _gi
模块。
我执行了这个命令:sudo add-apt-repository ppa:s-mankowski/ppa-kf5
这是回溯:
Traceback (most recent call last):
File "/usr/bin/add-apt-repository", line 11, in <module>
from softwareproperties.SoftwareProperties import SoftwareProperties, shortcut_handler
File "/usr/lib/python3/dist-packages/softwareproperties/SoftwareProperties.py", line 67, in <module>
from gi.repository import Gio
File "/usr/lib/python3/dist-packages/gi/__init__.py", line 42, in <module>
from . import _gi
ImportError: cannot import name '_gi' from 'gi' (/usr/lib/python3/dist-packages/gi/__init__.py)
我在 Ubuntu 上使用 Python3.7,我尝试了很多解决方案,但它不起作用:
$ cd /usr/lib/python3/dist-packages
$ sudo ln -s apt_pkg.cpython-{36m,37m}-x86_64-linux-gnu.so
$ cd /usr/lib/python3/dist-packages/gi
$ sudo ln -s _gi.cpython-{36m,37m}-x86_64-linux-gnu.so
我不能使用 sudo add-apt-repository ppa:s-mankowski/ppa-kf5
命令,但是 运行 一个带有 python3 {file}
的 Python 文件可以工作。
感谢您的帮助!
Ubuntu 不喜欢将其默认解释器从 python 3.7.
切换开
所以使用
将其切换回 3.6
sudo update-alternatives --config python3
之后尝试安装 gi
包:
sudo apt install python3-gi
感谢,我发现解决方案是:
sudo ln -s /usr/lib/python3/dist-packages/gi/_gi.cpython-{36m,37m}-x86_64-linux-gnu.so
这对我在 Ubuntu 上使用 Python 3.7 很有效。
按照以下步骤解决问题。
(1) ls -al /usr/bin | grep python
(2) sudo gedit /usr/bin/add-apt-repository
然后把!/usr/bin/python3改成
!/usr/bin/python3.6
这 2 个步骤可能对您有所帮助
$ cd /usr/lib/python3/dist-packages/gi
$ sudo ln -s _gi.cpython-{36m,37m}-x86_64-linux-gnu.so
这是一个老问题,但如果有人需要快速解决方案,那并不意味着要更改任何地方的默认 Python 版本,只需:
sudo python3.6 /usr/bin/apt-add-repository ppa:mosquitto-dev/mosquitto-ppa
当你检查 sudo apt install python3-gi
时它说“它已经安装到最新版本”
但是你的 import gi 不工作,所以你应该检查它的目录
cd /usr/lib/python3/dist-packages/gi
你会看到我用的是哪个版本的 python:“_gi.cpython-38-x86_64-linux-gnu.so” 即 38 => python3.8
所以你应该检查 sudo update-alternatives --config python3
看看是否有 python3.8 指向或没有,如果没有就简单地做:
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.8 2
并确保您的 python3 指向 python3.8
您可以通过以下方式查看:ls -l /etc/alternatives/python3
完成。
我正在尝试使用 add-apt-repository
命令向 ppa 添加存储库,但未找到来自 Python 的 _gi
模块。
我执行了这个命令:sudo add-apt-repository ppa:s-mankowski/ppa-kf5
这是回溯:
Traceback (most recent call last):
File "/usr/bin/add-apt-repository", line 11, in <module>
from softwareproperties.SoftwareProperties import SoftwareProperties, shortcut_handler
File "/usr/lib/python3/dist-packages/softwareproperties/SoftwareProperties.py", line 67, in <module>
from gi.repository import Gio
File "/usr/lib/python3/dist-packages/gi/__init__.py", line 42, in <module>
from . import _gi
ImportError: cannot import name '_gi' from 'gi' (/usr/lib/python3/dist-packages/gi/__init__.py)
我在 Ubuntu 上使用 Python3.7,我尝试了很多解决方案,但它不起作用:
$ cd /usr/lib/python3/dist-packages
$ sudo ln -s apt_pkg.cpython-{36m,37m}-x86_64-linux-gnu.so
$ cd /usr/lib/python3/dist-packages/gi
$ sudo ln -s _gi.cpython-{36m,37m}-x86_64-linux-gnu.so
我不能使用 sudo add-apt-repository ppa:s-mankowski/ppa-kf5
命令,但是 运行 一个带有 python3 {file}
的 Python 文件可以工作。
感谢您的帮助!
Ubuntu 不喜欢将其默认解释器从 python 3.7.
切换开所以使用
将其切换回 3.6sudo update-alternatives --config python3
之后尝试安装 gi
包:
sudo apt install python3-gi
感谢
sudo ln -s /usr/lib/python3/dist-packages/gi/_gi.cpython-{36m,37m}-x86_64-linux-gnu.so
这对我在 Ubuntu 上使用 Python 3.7 很有效。
按照以下步骤解决问题。
(1) ls -al /usr/bin | grep python
(2) sudo gedit /usr/bin/add-apt-repository
然后把!/usr/bin/python3改成
!/usr/bin/python3.6
这 2 个步骤可能对您有所帮助
$ cd /usr/lib/python3/dist-packages/gi
$ sudo ln -s _gi.cpython-{36m,37m}-x86_64-linux-gnu.so
这是一个老问题,但如果有人需要快速解决方案,那并不意味着要更改任何地方的默认 Python 版本,只需:
sudo python3.6 /usr/bin/apt-add-repository ppa:mosquitto-dev/mosquitto-ppa
当你检查 sudo apt install python3-gi
时它说“它已经安装到最新版本”
但是你的 import gi 不工作,所以你应该检查它的目录
cd /usr/lib/python3/dist-packages/gi
你会看到我用的是哪个版本的 python:“_gi.cpython-38-x86_64-linux-gnu.so” 即 38 => python3.8
所以你应该检查 sudo update-alternatives --config python3
看看是否有 python3.8 指向或没有,如果没有就简单地做:
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.8 2
并确保您的 python3 指向 python3.8
您可以通过以下方式查看:ls -l /etc/alternatives/python3
完成。