2017-05-27 35 views
1

安裝GI包我試圖運行使用Python 3.要運行這個我需要安裝gi第一(我用pyenvthis Matplotlib例如:的Python 3:PIP

$ python --version 
Python 3.6.1 
$ pip --version 
pip 9.0.1 from /home/hakon/.pyenv/versions/3.6.1/lib/python3.6/site-packages (python 3.6) 
$ pip install gi 
Collecting gi 
    Downloading gi-1.2.tar.gz 
Collecting requests (from gi) 
    Downloading requests-2.16.0-py2.py3-none-any.whl (85kB) 
    100% |████████████████████████████████| 92kB 959kB/s 
Collecting idna<2.6,>=2.5 (from requests->gi) 
    Downloading idna-2.5-py2.py3-none-any.whl (55kB) 
    100% |████████████████████████████████| 61kB 1.2MB/s 
Collecting chardet<3.1.0,>=3.0.2 (from requests->gi) 
    Downloading chardet-3.0.3-py2.py3-none-any.whl (133kB) 
    100% |████████████████████████████████| 143kB 1.8MB/s 
Collecting urllib3<1.22,>=1.21.1 (from requests->gi) 
    Downloading urllib3-1.21.1-py2.py3-none-any.whl (131kB) 
    100% |████████████████████████████████| 133kB 1.8MB/s 
Collecting certifi>=2017.4.17 (from requests->gi) 
    Downloading certifi-2017.4.17-py2.py3-none-any.whl (375kB) 
    100% |████████████████████████████████| 378kB 284kB/s 
Installing collected packages: idna, chardet, urllib3, certifi, requests, gi 
    Running setup.py install for gi ... done 
Successfully installed certifi-2017.4.17 chardet-3.0.3 gi-1.2 idna-2.5 requests-2.16.0 urllib3-1.21.1 

現在,運行例如:

$ python toolmanager.py 
Traceback (most recent call last): 
    File "./toolmanager.py", line 8, in <module> 
    import matplotlib.pyplot as plt 
    File "/home/hakon/.pyenv/versions/3.6.1/lib/python3.6/site-packages/matplotlib/pyplot.py", line 115, in <module> 
    _backend_mod, new_figure_manager, draw_if_interactive, _show = pylab_setup() 
    File "/home/hakon/.pyenv/versions/3.6.1/lib/python3.6/site-packages/matplotlib/backends/__init__.py", line 32, in pylab_setup 
    globals(),locals(),[backend_name],0) 
    File "/home/hakon/.pyenv/versions/3.6.1/lib/python3.6/site-packages/matplotlib/backends/backend_gtk3cairo.py", line 6, in <module> 
    from . import backend_gtk3 
    File "/home/hakon/.pyenv/versions/3.6.1/lib/python3.6/site-packages/matplotlib/backends/backend_gtk3.py", line 10, in <module> 
    import gi 
    File "/home/hakon/.pyenv/versions/3.6.1/lib/python3.6/site-packages/gi/__init__.py", line 39 
    print url 
      ^
SyntaxError: Missing parentheses in call to 'print' 

似乎像pip以某種方式安裝了Python 2版本?我怎樣才能解決這個問題?

回答

1

首先,pip install gi將安裝另一個不相關的包,正確的 名稱是pgi。但運行後:

$ pip uninstall gi 
$ pip install pgi 
$ python toolmanager.py 
[...] 
Traceback (most recent call last): 
    File "toolmanager.py", line 14, in <module> 
    import matplotlib.pyplot as plt 
    File "/home/hakon/.pyenv/versions/3.6.1/lib/python3.6/site-packages/matplotlib/pyplot.py", line 115, in <module> 
    _backend_mod, new_figure_manager, draw_if_interactive, _show = pylab_setup() 
    File "/home/hakon/.pyenv/versions/3.6.1/lib/python3.6/site-packages/matplotlib/backends/__init__.py", line 32, in pylab_setup 
    globals(),locals(),[backend_name],0) 
    File "/home/hakon/.pyenv/versions/3.6.1/lib/python3.6/site-packages/matplotlib/backends/backend_gtk3cairo.py", line 6, in <module> 
    from . import backend_gtk3 
    File "/home/hakon/.pyenv/versions/3.6.1/lib/python3.6/site-packages/matplotlib/backends/backend_gtk3.py", line 12, in <module> 
    raise ImportError("Gtk3 backend requires pygobject to be installed.") 
ImportError: Gtk3 backend requires pygobject to be installed. 

似乎pygobject爲Python 3不能從PyPI將被安裝。於是,我試圖從Ubuntu的分發包python3-gi,而不是安裝的一切:

$ sudo apt-get install python3-gi 
$ pyenv local system 
$ python3 --version 
Python 3.5.3 
$ python3 toolmanager.py 

,這工作得很好:)