"UserWarning : Matplotlib는 현재 GUI가 아닌 백엔드 인 agg를 사용하고 있으므로 그림을 표시 할 수 없습니다." Pycharm에서 pyplot으로 그림을 그릴 때


155

다음과 같이 pyplot을 사용하여 간단한 그래프를 그리려고합니다.

import matplotlib.pyplot as plt
plt.plot([1,2,3],[5,7,4])
plt.show()

그러나 그림이 나타나지 않고 다음 메시지가 나타납니다.

UserWarning: Matplotlib is currently using agg, which is a non-GUI backend, so cannot show the figure.

여러 곳에서 다음을 사용하여 matplotlib의 구성을 변경해야하는 것을 보았습니다.

import matplotlib
matplotlib.use('TkAgg')
import matplotlib.pyplot as plt

이 작업을 수행했지만 모듈을 찾을 수 없기 때문에 오류 메시지가 나타납니다.

ModuleNotFoundError: No module named 'tkinter'

그런 다음 pip install tkinter(가상 환경 내부)를 사용하여 "tkinter"를 설치하려고했지만 찾지 못했습니다.

Collecting tkinter
  Could not find a version that satisfies the requirement tkinter (from versions: )
No matching distribution found for tkinter

또한 가상 환경을 사용하여 Pycharm Community Edition IDE에서이 모든 것을 실행하고 있으며 운영 체제가 Linux / Ubuntu 18.04임을 언급해야합니다.

그래프를 표시하기 위해이 문제를 어떻게 해결할 수 있는지 알고 싶습니다.


7
잠시 그래프는 잊어 버리세요. 문제는 tkinter를 설치하는 것입니다. 사용 가능한 솔루션 (예 : stackoverflow.com/questions/4783810/install-tkinter-for-python) 을 사용해 보셨습니까 ?
ImportanceOfBeingErnest

4
실제로 tkinter를 사용하고 있습니까, 아니면 그냥 plt 백엔드로 선택 했습니까?
G. Anderson 19

1
@ImportanceOfBeingErnest : 힌트 주셔서 감사합니다. 실제로 tkinter를 먼저 설치하는 데 집중할 것입니다. 당신이 제공 한 링크를 살펴보고 그것으로 무엇이든 만들 수 있는지 살펴 보겠습니다.
johnwolf1987

1
@G. Anderson : matplotlib에서이 오류가 발생하기 전에는 tkinter가 무엇인지 전혀 몰랐습니다. 이제 그래프를 표시 할 수 있도록 설치하려고합니다 (예, plt 백엔드로 선택한 것 같습니다). 다른 방법 (예 : tkinter를 사용하지 않고)을 알고 있다면 기뻐할 것입니다.
johnwolf1987

2
@G. Anderson : 다른 백엔드를 순환하는 스크립트를 실행했습니다. TkAgg 만 사용 가능하다는 것이 밝혀졌습니다! 실제로 스크립트를 테스트하기 전에 방금 설치했습니다.
johnwolf1987

답변:


217

내 문제에 대한 해결책을 찾았습니다 ( ImportanceOfBeingErnest 의 도움 덕분에 ).

내가해야 할 일은 tkinter다음 명령을 사용하여 Linux bash 터미널을 통해 설치 하는 것뿐입니다.

sudo apt-get install python3-tk

pipPycharm의 가상 환경 과 함께 또는 직접 설치하는 대신 .


7
사실, 나는 또한 Tkinter를 설치하기 때문에, 난 더 이상 내 코드의 첫 두 줄을 추가 할 필요가 없습니다 것을 깨달았다 ( import matplotlibmatplotlib.use('TkAgg'))
johnwolf1987

완전성을 위해 OpenSuse Leap에서 설치해야하는 패키지는 python3-matplotlib-tk.
Eldrad

6
이 대답은 tkinter이 특정 명령이 tkinter기본 버전의 python을 위해 독점적으로 설치된다는 점에서 python 버전에 따라 다르다는 것을 언급 할 수 있습니다. 다양한 가상 환경에 대해 서로 다른 Python 버전 설치가 있다고 가정합니다. 이 경우 해당 작업 환경에서 사용되는 원하는 Python 버전에 맞게 설치해야합니다. 예를 들어, 제 경우 : sudo apt-get install python3.7-tk. 이 사실을 알지 못해 모듈 이름 'tkinter'오류가 발생하지 않는 데 상당한 시간이 걸렸습니다. 심지어 글로벌 파이썬 버전 용으로 설치 한 후에도 요.
xicocaio

이 명령을 실행하려면 내 PC에 Linux Bash 터미널을 설치해야했습니다. 그리고 작동했습니다! howtogeek.com/249966/…
arame3333

또는 sudo apt-get install python3.8-tkPython 버전이 3.8 인 경우 사용
Vicrobot

47

제 경우에는 오류 메시지가 내가 헤드리스 콘솔에서 작업하고 있음을 의미했습니다. 그래서 plt.show()작동하지 못했습니다. 효과가있는 것은 plt.savefig다음과 같습니다.

import matplotlib.pyplot as plt

plt.plot([1,2,3], [5,7,4])
plt.savefig("mygraph.png")

github 저장소 에서 답을 찾았습니다 .


이봐 요! 답변 해주셔서 감사합니다!
Jarrett

20

Arch Linux ( Manjaro또는 같은 배포판)를 사용하는 경우 다음을 Antegros입력하십시오.

sudo pacman -S tk

그리고 모두 완벽하게 작동합니다!


1
감사합니다. 그것을 찾고 있었다.
logicOnAbstractions

10

import tkinterpycharm이 이미 tkinter를 설치했기 때문에 시도해보십시오 Install tkinter for Python

시도해 볼 수 있습니다.

import tkinter
import matplotlib
matplotlib.use('TkAgg')
plt.plot([1,2,3],[5,7,4])
plt.show()

tkinter 설치 방법으로

나는 당신의 방식을 시도했지만 내 컴퓨터에서 실행하는 데 오류가없는 것 같으며 성공적으로 그림을 보여줍니다. 아마도 pycharm이 tkinter를 시스템 패키지로 가지고 있기 때문에 설치할 필요가 없습니다. 그러나 내부에서 tkinter를 찾을 수 없으면 Tkdocs 로 이동하여 tkinter를 설치하는 방법을 볼 수 있습니다 . tkinter는 python의 핵심 패키지입니다.


1
제안 해 주셔서 감사합니다. 불행히도 작동하지 않습니다 ( ModuleNotFoundError: No module named 'tkinter'). tkinter를 다른 방법으로 설치하려고합니다.
johnwolf1987

7

나도 PyCharm 에서이 문제가 발생했습니다. 이 문제는 컴퓨터에 tkinter 모듈이 없기 때문입니다.

설치하려면 아래 단계를 따르십시오 (적절한 OS 선택).

우분투 사용자 용

 sudo apt-get install python-tk

또는

 sudo apt-get install python3-tk

Centos 사용자의 경우

 sudo yum install python-tkinter

또는

 sudo yum install python3-tkinter

Windows의 경우 pip를 사용하여 tk를 설치합니다.

tkinter를 설치 한 후 Pycharm을 다시 시작하고 코드를 실행하면 작동합니다.


6

간단한 설치

pip3 install PyQt5==5.9.2

그것은 나를 위해 작동합니다.


네, 작동합니다! PyCharm의 터미널을 통해 가상 환경에 설치했습니다.
WH Lee

버전 번호를 지정하지 않고 "pip3 install PyQt5"를 실행합니다.
oraclesoon

2

이것은 R reticulate와 함께 작동했습니다. 여기 에서 찾았습니다 .

1: matplotlib.use( 'tkagg' ) 또는 2: matplotlib$use( 'tkagg' )

예를 들면 :

import numpy as np
import matplotlib.pyplot as plt
from matplotlib import style

import matplotlib
matplotlib.use( 'tkagg' )


style.use("ggplot")
from sklearn import svm

x = [1, 5, 1.5, 8, 1, 9]
y = [2, 8, 1.8, 8, 0.6, 11]

plt.scatter(x,y)
plt.show()

1

업그레이드 패키지의 많은 (후 Spyder3 ~ 4, Keras그리고 Tensorflow그들의 의존성 많이), 오늘 같은 문제가 있었다! 나는 무슨 일이 일어 났는지 알 수 없다. 하지만 Spyder3 을 계속 사용하던 (콘다 기반) 가상 환경 은 문제가 없었습니다. 위에 표시된대로 tkinter백엔드를 설치 하거나 변경하거나 백엔드 를 변경하는 방법via matplotlib.use('TkAgg)대한 이 멋진 게시물이 문제를 해결할 수 있지만, 이것이 엄격한 솔루션이라고 생각하지 않습니다. 나를 위해, matplotlib그것을 제거 하고 다시 설치하는 것은 마술이었고 문제가 해결되었습니다.

pip uninstall matplotlib

... 그런 다음 설치

pip install matplotlib

위의 모든 것에서 이것은 패키지 관리 문제가 될 수 있으며 BTW 에서는 가능할 때마다 conda및을 모두 사용합니다 pip.


1

from agg을 사용하여 백엔드를 사용하여 matplotlib TKAgg를 명령을 사용하여 Tkinter로 변경할 수 있습니다.

matplotlib.use('TKAgg',warn=False, force=True)

이것은 대화 형 ipython 콘솔을 다시로드 할 필요가 없었기 때문에 매우 유용했습니다. 감사합니다
Iulian Pinzaru

1

% matplotlib 인라인을 추가 했고 내 플롯이 Jupyter Notebook에 표시되었습니다.


0

Linux Mint 19. 도움 :

sudo apt install tk-dev

PS 패키지 설치 후 파이썬 인터프리터를 다시 컴파일하십시오.


0

이것이 누군가에게 도움이된다면.

Python 버전 : 3.7.7 플랫폼 : Ubuntu 18.04.4 LTS

이것은 기본 파이썬 버전 3.6.9와 함께 제공되었지만 내 자신의 3.7.7 버전 파이썬을 설치했습니다 (소스에서 빌드 설치)

tkinter는 help('module')목록에 tkinter를 표시 하더라도 작동하지 않았습니다 .

다음 단계가 저에게 효과적이었습니다.

  1. sudo apt-get install tk-dev.

python을 다시 빌드합니다. 1. python 폴더로 이동하여 검사를 실행합니다.

cd Python-3.7.7
sudo ./configure --enable-optimizations
  1. make 명령을 사용하여 빌드 : sudo make -j 8 --- 여기 8은 프로세서 수입니다 nproc. 명령을 사용하여 확인하십시오 .
  2. 다음을 사용하여 설치 :

    sudo make altinstall
    

sudo make install을 사용하지 마십시오. 나중에 지저분해질 수있는 기본 3.6.9 버전을 덮어 씁니다.

  1. 지금 tkinter 확인
    python3.7 -m tkinter
    

창 상자가 나타나면 tkinter가 준비되었습니다.


0

Spyder에서이 오류가 발생했을 때 코드를 한 줄씩 실행하는 것에서 코드를 플로팅하는 블록을 강조 표시하고 한꺼번에 실행하는 것으로 변경했습니다. 짜잔, 이미지가 나타났습니다.


0

@xicocaio의 주석이 강조 표시되어야합니다.

tkinter는 sudo apt-get install python3-tk기본 버전의 python 전용으로 tkinter를 설치 한다는 점에서 python 버전에 따라 다릅니다 . 다양한 가상 환경 내에 다른 파이썬 버전이 있다고 가정하면 해당 가상 환경에서 사용되는 원하는 파이썬 버전에 대한 tkinter를 설치해야합니다. 예 : sudo apt-get install python3.7-tk. 이렇게하지 않으면 No module named ' tkinter'전역 Python 버전 용으로 설치 한 후에도 오류 가 발생합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.