2016-08-16 4 views
3

pyenv과 함께 설치했으며 Python v2.7.12를 사용했습니다. 문제없이Python virtualenv에서 matplotlib 백엔드를 변경하십시오.

pip install matplotlib 

이 VIRTUALENV 안에서, 나는 통해 matplotlib v1.5.1를 설치했습니다. 문제는 간단하다는 것입니다.

import matplotlib.pyplot as plt 
plt.scatter([], []) 
plt.show() 

스크립트가 플롯 창을 생성하지 못합니다. 내가 사용 VIRTUALENV에 표시되는 백엔드 :

import matplotlib 
print matplotlib.rcParams['backend'] 

agg입니다, 분명히 문제의 근본 원인이다. 시스템 전체 설치에서 백엔드를 확인하면 Qt4Agg (그리고 위의 스크립트를 실행하면 플롯 창이 잘 보임)이 표시됩니다.

이미 비슷한 질문이 몇 가지 있는데, 모두 해결 방법을 시도했습니다.

  1. --system-site-packages 옵션을 VIRTUALENV를 만들려고

    Matplotlib plt.show() isn't showing graph

    . 안돼.

  2. How to ensure matplotlib in a Python 3 virtualenv uses the TkAgg backend?

    설치된 sudo apt install tk-dev은 다음 pip --no-cache-dir install -U --force-reinstall matplotlib을 사용하여 다시 설치. 백엔드는 여전히 agg으로 표시됩니다. this answer에 주어진 지침을 설치 이어

  3. Matplotlib doesn't display graph in virtualenv

    가 여기에 주어진 솔루션 이다

  4. matplotlib plot window won't appear

    (다른 대답하는 I will not do, easy_install을 사용하는 것) 아무것도하지 않았다 "는 설치 GUI 라이브러리 (Tkinter, GTK, QT4, PySide, Wx 중 하나) ". 나는 이것을 어떻게하는지 모른다. 또한, 경우에 내가 사용

    import matplotlib.rcsetup as rcsetup 
    print(rcsetup.all_backends) 
    

    내가 얻을 :

    [u'GTK', u'GTKAgg', u'GTKCairo', u'MacOSX', u'Qt4Agg', u'Qt5Agg', u'TkAgg', u'WX', u'WXAgg', u'CocoaAgg', u'GTK3Cairo', u'GTK3Agg', u'WebAgg', u'nbAgg', u'agg', u'cairo', u'emf', u'gdk', u'pdf', u'pgf', u'ps', u'svg', u'template'] 
    

    모든 백엔드 내 시스템에서 사용할 수이다 것을 의미한다 (?). 나는이의 VIRTUALENV 인식하게하는 방법을 모르는

    backend  : Qt4Agg 
    

    :

  5. matplotlib does not show my drawings although I call pyplot.show()

    matplotlibrc 파일은 라인을 보여줍니다?

솔루션의 일부는

내가하고 싶지 않아 matplotlib ( herehere)의 시스템 버전에 생성 링크를 포함한다. virtualenv에 설치된 matplotlib 버전을 사용하고 싶습니다.

내가 함께 백엔드를 설정하려고하면 :

import matplotlib 
matplotlib.use('GTKAgg') 

내가 (GTK와 같은) ImportError: Gtk* backend requires pygtk to be installed를 얻을. 그러나 내가 sudo apt-get install python-gtk2 python-gtk2-dev을하면, 그들은 둘 다 설치되어있는 것을 볼 수 있습니다.

사용 : ImportError: Matplotlib qt-based backends require an external PyQt4, PyQt5, or PySide package to be installed, but it was not found.에서

import matplotlib 
matplotlib.use('Qt4Agg') 

(또는 Qt5Agg) 결과 내가 어떤 패키지를 설치해야하는지 확실하지? ImportError: No module named _tkinter

import matplotlib 
matplotlib.use('TkAgg') 

결과를하지만, sudo apt-get install python-tk은 설치되어 있는지 말한다 :

사용.

사용 :

import matplotlib 
matplotlib.use('GTKCairo') 

결과 ImportError: No module named gtk한다. 그래서 나는 sudo apt-get install libgtk-3-dev을 시도하지만 이미 설치되었다고 말합니다.

가상 시스템이 내 시스템에서 사용하는 동일한 백엔드를 사용하도록하려면 어떻게해야합니까?

+0

백엔드를 수동으로 설정하는 확실한 해결 방법을 시도해 봤습니까? [이처럼] (http://stackoverflow.com/a/20249447/5067311). –

+0

@AndrasDeak는 업데이트 된 답변을 참조하십시오. – Gabriel

+0

[적어도 tkinter가 설치되어 있어야하기 때문에] 꽤 이상합니다. (http://stackoverflow.com/a/20075485/5067311). 불행히도 나는 virtualenvs에 대해 아무것도 모릅니다. 그래서 나는이 시점을 넘어서는 것을 도울 수 없습니다. –

답변

3

당신은 실행하여 파이썬 2 VIRTUALENV에 TkAgg에 백엔드를 변경하는 것을 고려 할 수있는 사항은 다음과 같습니다 백엔드를 확인하려면

sudo apt install python-tk # install Python 2 bindings for Tk 
pip --no-cache-dir install -U --force-reinstall matplotlib # reinstall matplotlib 

python -c 'import matplotlib as mpl; print(mpl.get_backend())' 

을 실행, 실제로 TkAgg이며 TkAgg을 볼 수 .

+1

완벽하게 작동했습니다. 에드윈스키 대단히 감사합니다! – Gabriel

+0

나는 conda 환경에서 이것을 수행하는데 도움이 필요하다. 'GTKAgg'백엔드로 변경하고 싶습니다. 내 conda에서 pygtk가 설치되었지만 여전히'Gtk * 백엔드에 pygtk를 설치해야합니다 .'라는 오류가 있습니다. matplotlib을 다시 설치해도 도움이되지 않습니다. – Jason

+0

@ Jason이 답변은 콘도 환경에는 적용되지 않을 수 있으므로 새로운 질문을하고 싶을 수도 있습니다. – edwinksl

관련 문제