在 Ubuntu 16.04 中,我有 python2.7、python3.5 和 python3.6。Anaconda 使用的是 python3.6。我可以在 2.7 和 3.5 上导入 gi,但在 3.6 上却不行。我按照此处的建议创建了链接https://stackoverflow.com/questions/37526026/how-to-install-gi-module-for-anaconda-python3但我仍然收到错误。
gio@gio-XPS-13-9343:~$ python
Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56)
[GCC 7.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import gi
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/gio/anaconda3/lib/python3.6/site-packages/gi/__init__.py", line 42, in <module>
from . import _gi
ImportError: cannot import name '_gi'
>>>
答案1
我今天遇到了同样的问题,对我有用的方法如下:
第一的,创建链接,按照您引用的 stackoverflow 帖子中的建议(假设 anaconda 安装在 /home/your_user/anaconda3 下)
ln -s /usr/lib/python3/dist-packages/gi /home/your_user/anaconda3/lib/python3.6/site-packages/
第二,导航到gi
你刚刚链接的文件夹,在你的 anaconda 目录中,重命名两个 .so 文件的副本,以适合 anaconda 的 python 版本(在我的情况下来自3.4到3.6)
cd /home/your_user/anaconda3/lib/python3.6/site-packages/gi/
sudo cp _gi.cpython-34m-x86_64-linux-gnu.so _gi.cpython-36m-x86_64-linux-gnu.so
和
sudo cp _gi_cairo.cpython-34m-x86_64-linux-gnu.so _gi_cairo.cpython-36m-x86_64-linux-gnu.so
最后,它们import gi
在我的 Anaconda 环境中正常工作。
Python 3.6.4 |Anaconda, Inc.| (default, Jan 16 2018, 18:10:19)
[GCC 7.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import gi
>>>