python3.4导入gi失败

python3.4导入gi失败

我尝试了很多方法在我的Mint17.02上安装gi。

zen@zen:~ > sudo pip3 install gi
zen@zen:~ > sudo python3.4 -m pip install gi
Requirement already satisfied (use --upgrade to upgrade): gi in /usr/local/lib/python3.4/site-packages
Requirement already satisfied (use --upgrade to upgrade): requests in /usr/local/lib/python3.4/site-packages (from gi)

zen@zen:~ > sudo python3.4
Python 3.4.3 (default, Sep  2 2015, 01:05:11) 
[GCC 4.8.4] 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 "/usr/local/lib/python3.4/site-packages/gi/__init__.py", line 39
    print url
            ^
SyntaxError: Missing parentheses in call to 'print'

答案1

看起来你已经编译了自己的 python(因为我的 Linux Mint 17.2 有 3.4.0 作为默认的 python3.4。gi在该安装上运行程序的最简单方法是安装包python3-gi并将 gi 目录符号链接到lib/python3.4/site-packages你的目录自编译的python。

您可以通过转到site-packages您的目录来执行此操作3.4.3安装并执行以下操作:

ln -s $(    /usr/bin/python3 -c "import os, gi; print(os.path.dirname(gi.__file__))") .

如果您使用 virtualenvs 和/或 tox,您应该考虑使您开发的包依赖于我的ruamel.venvgtk它会在安装时设置这些链接(包括 gtk 的链接,以防您在 python2 中使用 pip)

答案2

发生在我的基本操作系统上,redshift-gtk不会再启动,因为 python3 从 导入 gi ,并且会因该错误/usr/local/lib/python3.5/dist-packages而失败。print url

使用 pip3 卸载 gi 解决了我的问题:

$ sudo pip3 uninstall gi

从那时起,python3 导入“正确的”gi。

相关内容