我尝试了很多方法在我的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。